xlizard


Namexlizard JSON
Version 1.1.1 PyPI version JSON
download
home_pageNone
SummaryExtended Lizard with additional static code analysis features
upload_time2025-08-29 16:26:17
maintainerNone
docs_urlNone
authorXor1no
requires_pythonNone
licenseProprietary
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # xLizard - Extended Cyclomatic Complexity Analyzer

![Version](https://img.shields.io/badge/version-1.1.0-blue.svg)
![License](https://img.shields.io/badge/license-Proprietary-red.svg)
![Platform](https://img.shields.io/badge/platform-Windows-lightgrey.svg)
![Python](https://img.shields.io/badge/python-3.7%2B-green.svg)

**xLizard** - расширенный анализатор цикломатической сложности для языков программирования C/C++ с интеграцией метрик SourceMonitor и продвинутой визуализацией в HTML-отчетах.

## 🔒 Безопасность и Конфиденциальность

**ВАЖНО: ВСЕ АНАЛИЗЫ ВЫПОЛНЯЮТСЯ ЛОКАЛЬНО**

- ✅ **Локальный анализ**: Весь процесс анализа происходит исключительно на вашем компьютере
- ✅ **Нет передачи данных**: Исходные коды никогда не покидают вашу систему
- ✅ **Без сетевых запросов**: Генерация отчетов не требует интернет-соединения
- ✅ **Идеально для конфиденциальных проектов**: Полная защита интеллектуальной собственности

## 📊 Поддерживаемые Метрики

### Базовые метрики (Lizard)
- **Цикломатическая сложность (CCN)**: Оценка сложности управляющего графа функции
- **Количество строк кода (NLOC)**: Непустые строки без комментариев
- **Количество токенов**: Общее количество лексических единиц
- **Количество параметров**: Параметры функции
- **Глубина вложенности**: Максимальный уровень вложенности блоков

### Расширенные метрики (SourceMonitor)
- **Процент комментариев**: Отношение комментариев к общему коду (%)
- **Максимальная глубина блоков**: Глубина вложенности структур управления
- **Операции с указателями**: Количество операций * и &
- **Препроцессорные директивы**: Количество директив #define, #include и др.

## 🚀 Быстрый Старт

### Установка

```bash
# Установка из pip
pip install xlizard

# Или установка из исходного кода
git clone <repository-url>
cd xlizard
pip install -e .



# Базовое использование

# Анализ текущей директории
xlizard .

# Анализ с HTML отчетом
xlizard --html -o report.html .


# Возможности HTML отчета:

📊 Интерактивные диаграммы: Распределение сложности, метрик, комментариев

📈 Heatmap сложности: Визуализация сложности по директориям

🔍 Поиск и фильтрация: Поиск по функциям и файлам

🎯 Топ-5 анализа: Самые сложные функции, файлы с наименьшим количеством комментариев

📋 Сравнение метрик: Сравнение с пороговыми значениями

🎨 Темы: Темная/светлая тема переключения

📱 Адаптивный дизайн: Оптимизация для desktop и mobile

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "xlizard",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "Xor1no",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/92/0f/e310715148e2e257ebd9602530506f80e44db8a276a5df102a4784718a22/xlizard-1.1.1.tar.gz",
    "platform": null,
    "description": "# xLizard - Extended Cyclomatic Complexity Analyzer\r\n\r\n![Version](https://img.shields.io/badge/version-1.1.0-blue.svg)\r\n![License](https://img.shields.io/badge/license-Proprietary-red.svg)\r\n![Platform](https://img.shields.io/badge/platform-Windows-lightgrey.svg)\r\n![Python](https://img.shields.io/badge/python-3.7%2B-green.svg)\r\n\r\n**xLizard** - \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0446\u0438\u043a\u043b\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f C/C++ \u0441 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0435\u0439 \u043c\u0435\u0442\u0440\u0438\u043a SourceMonitor \u0438 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u043e\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u0432 HTML-\u043e\u0442\u0447\u0435\u0442\u0430\u0445.\r\n\r\n## \ud83d\udd12 \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u041a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c\r\n\r\n**\u0412\u0410\u0416\u041d\u041e: \u0412\u0421\u0415 \u0410\u041d\u0410\u041b\u0418\u0417\u042b \u0412\u042b\u041f\u041e\u041b\u041d\u042f\u042e\u0422\u0421\u042f \u041b\u041e\u041a\u0410\u041b\u042c\u041d\u041e**\r\n\r\n- \u2705 **\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437**: \u0412\u0435\u0441\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0430\u043d\u0430\u043b\u0438\u0437\u0430 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0430 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435\r\n- \u2705 **\u041d\u0435\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445**: \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u043a\u043e\u0434\u044b \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u043e\u043a\u0438\u0434\u0430\u044e\u0442 \u0432\u0430\u0448\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u0443\r\n- \u2705 **\u0411\u0435\u0437 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432**: \u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u043e\u0442\u0447\u0435\u0442\u043e\u0432 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\r\n- \u2705 **\u0418\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432**: \u041f\u043e\u043b\u043d\u0430\u044f \u0437\u0430\u0449\u0438\u0442\u0430 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0441\u0442\u0438\r\n\r\n## \ud83d\udcca \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u041c\u0435\u0442\u0440\u0438\u043a\u0438\r\n\r\n### \u0411\u0430\u0437\u043e\u0432\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 (Lizard)\r\n- **\u0426\u0438\u043a\u043b\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u044c (CCN)**: \u041e\u0446\u0435\u043d\u043a\u0430 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0433\u0440\u0430\u0444\u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u0438\r\n- **\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 (NLOC)**: \u041d\u0435\u043f\u0443\u0441\u0442\u044b\u0435 \u0441\u0442\u0440\u043e\u043a\u0438 \u0431\u0435\u0437 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432\r\n- **\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0442\u043e\u043a\u0435\u043d\u043e\u0432**: \u041e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043b\u0435\u043a\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0435\u0434\u0438\u043d\u0438\u0446\r\n- **\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432**: \u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0443\u043d\u043a\u0446\u0438\u0438\r\n- **\u0413\u043b\u0443\u0431\u0438\u043d\u0430 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438**: \u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0431\u043b\u043e\u043a\u043e\u0432\r\n\r\n### \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 (SourceMonitor)\r\n- **\u041f\u0440\u043e\u0446\u0435\u043d\u0442 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432**: \u041e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u043a \u043e\u0431\u0449\u0435\u043c\u0443 \u043a\u043e\u0434\u0443 (%)\r\n- **\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u0430\u044f \u0433\u043b\u0443\u0431\u0438\u043d\u0430 \u0431\u043b\u043e\u043a\u043e\u0432**: \u0413\u043b\u0443\u0431\u0438\u043d\u0430 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\r\n- **\u041e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0441 \u0443\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u044f\u043c\u0438**: \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 * \u0438 &\r\n- **\u041f\u0440\u0435\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u043d\u044b\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432\u044b**: \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u0438\u0432 #define, #include \u0438 \u0434\u0440.\r\n\r\n## \ud83d\ude80 \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0421\u0442\u0430\u0440\u0442\r\n\r\n### \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n```bash\r\n# \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438\u0437 pip\r\npip install xlizard\r\n\r\n# \u0418\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0438\u0437 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u0430\r\ngit clone <repository-url>\r\ncd xlizard\r\npip install -e .\r\n\r\n\r\n\r\n# \u0411\u0430\u0437\u043e\u0432\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\r\n\r\n# \u0410\u043d\u0430\u043b\u0438\u0437 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438\r\nxlizard .\r\n\r\n# \u0410\u043d\u0430\u043b\u0438\u0437 \u0441 HTML \u043e\u0442\u0447\u0435\u0442\u043e\u043c\r\nxlizard --html -o report.html .\r\n\r\n\r\n# \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 HTML \u043e\u0442\u0447\u0435\u0442\u0430:\r\n\r\n\ud83d\udcca \u0418\u043d\u0442\u0435\u0440\u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u044b: \u0420\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043c\u0435\u0442\u0440\u0438\u043a, \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432\r\n\r\n\ud83d\udcc8 Heatmap \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438: \u0412\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f\u043c\r\n\r\n\ud83d\udd0d \u041f\u043e\u0438\u0441\u043a \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f: \u041f\u043e\u0438\u0441\u043a \u043f\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c \u0438 \u0444\u0430\u0439\u043b\u0430\u043c\r\n\r\n\ud83c\udfaf \u0422\u043e\u043f-5 \u0430\u043d\u0430\u043b\u0438\u0437\u0430: \u0421\u0430\u043c\u044b\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0444\u0430\u0439\u043b\u044b \u0441 \u043d\u0430\u0438\u043c\u0435\u043d\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432\r\n\r\n\ud83d\udccb \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043c\u0435\u0442\u0440\u0438\u043a: \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u0440\u043e\u0433\u043e\u0432\u044b\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438\r\n\r\n\ud83c\udfa8 \u0422\u0435\u043c\u044b: \u0422\u0435\u043c\u043d\u0430\u044f/\u0441\u0432\u0435\u0442\u043b\u0430\u044f \u0442\u0435\u043c\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f\r\n\r\n\ud83d\udcf1 \u0410\u0434\u0430\u043f\u0442\u0438\u0432\u043d\u044b\u0439 \u0434\u0438\u0437\u0430\u0439\u043d: \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u043b\u044f desktop \u0438 mobile\r\n",
    "bugtrack_url": null,
    "license": "Proprietary",
    "summary": "Extended Lizard with additional static code analysis features",
    "version": "1.1.1",
    "project_urls": null,
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "8a56cb4b4c028a1f71fece99464fa36d8af11e19d13ee70442e9d48f847db1b8",
                "md5": "a1fecac81d980b694fee294c905d1375",
                "sha256": "f569c875b61359220e0730cb78830d0b733009ab1b2b17049975d96be6a6d68c"
            },
            "downloads": -1,
            "filename": "xlizard-1.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a1fecac81d980b694fee294c905d1375",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 103279,
            "upload_time": "2025-08-29T16:26:12",
            "upload_time_iso_8601": "2025-08-29T16:26:12.091986Z",
            "url": "https://files.pythonhosted.org/packages/8a/56/cb4b4c028a1f71fece99464fa36d8af11e19d13ee70442e9d48f847db1b8/xlizard-1.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "920fe310715148e2e257ebd9602530506f80e44db8a276a5df102a4784718a22",
                "md5": "d35848e28602b8b31d1561220c2a44c4",
                "sha256": "d670a7132e7c61847bb9a22e67326374247f8bc6e0b68ed116d033859504fd9f"
            },
            "downloads": -1,
            "filename": "xlizard-1.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "d35848e28602b8b31d1561220c2a44c4",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 79149,
            "upload_time": "2025-08-29T16:26:17",
            "upload_time_iso_8601": "2025-08-29T16:26:17.283441Z",
            "url": "https://files.pythonhosted.org/packages/92/0f/e310715148e2e257ebd9602530506f80e44db8a276a5df102a4784718a22/xlizard-1.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-29 16:26:17",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "xlizard"
}
        
Elapsed time: 0.98728s