flk


Nameflk JSON
Version 1.2.5 PyPI version JSON
download
home_pagehttps://github.com/FlacSy/flk
SummaryFLK - это библиотека для парсинга и работы с файлами в формате FL (File Language).
upload_time2024-06-16 07:03:37
maintainerNone
docs_urlNone
authorFlacSy
requires_pythonNone
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # FLK (File Language Kit)

FLK - это библиотека для парсинга и работы с файлами в формате FL (File Language), предназначенная для упрощения работы со структурированными данными.

## Основные возможности

- **Парсинг файлов FL**: Чтение и анализ файлов с расширением `.fl`, содержащих переменные и константы.
- **Простота использования**: Импортируйте `Parser` и начните парсинг файлов с минимальной настройкой.
- **Расширяемость**: Легко адаптируйте для парсинга различных форматов данных.

## Установка

Установите через pip:

```bash
pip install flk
```

Для последней версии:

```bash
pip install git+https://github.com/FlacSy/flk
```

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

### Импорт и использование парсера

```python
# Импортируем класс Parser из модуля flk
from flk import Parser

# Создаем экземпляр парсера
parser = Parser()

# Задаем имя переменной, значение которой мы хотим изменить
variable_name = "num_1"

# Парсим файл "example.fl" и анализируем его содержимое
parser.parse_file("example.fl")

# Изменяем значение переменной с именем, указанным в variable_name, на 3
parser.edit_var_value(variable_name, 3)

# Получаем объект переменной с именем, указанным в variable_name
my_var = parser.get_var(variable_name)

# Получаем тип переменной
var_type = my_var.get_type()

# Получаем значение переменной
var_value = my_var.get_value()

# Создаем переменную 
parser.create_var("my_custom_var", "str", "Hello World!")

# Удаляем переменную
parser.remove_var("my_custom_var")

# Выводим информацию о переменной
print(f"Тип переменной '{variable_name}': {var_type}")
print(f"Значение переменной '{variable_name}': {var_value}")
```

### Командная строка

Используйте FLK из командной строки:

```bash
python -m flk example.fl
```

## Синтаксис файла FL

Файлы FL используют простой и понятный синтаксис для определения переменных и констант:

### Комментарии
- Однострочные: начинаются с `#`
- Многострочные: ограничены `/*` и `*/`

### Константы
- Определяются с ключевым словом `const`, за которым следует тип и значение:
  ```plaintext
  const PI(float) = 3.14159
  ```

### Переменные
- Определяются с указанием типа и значения:
  ```plaintext
  my_string(str) = "Hello, world!"
  ```

### Импорты
- Импорт других `.fl` файлов:
  ```plaintext
  (import) module_name
  ```

### Арифметические и логические операции
- Поддерживаются базовые арифметические (`+`, `-`, `*`, `/`, `%`) и логические операции (`<`, `>`, `=`):
  ```plaintext
  my_sum(float) = $my_int + $my_float
  my_logic_bool(bool) = $my_int < $my_float
  ```

## Расширение для Visual Studio Code

Улучшите визуализацию синтаксиса файлов `.fl` с помощью нашего расширения:
- [GitHub](https://github.com/FlacSy/FLSyntax)
- [VisualStudio Marketplace](https://marketplace.visualstudio.com/items?itemName=FLSyntax.fl-syntax-highlighter&ssr=false#review-details)

## TODO
- docstrings
- f strings


## Лицензия

FLK распространяется под [Apache License Version 2.0](LICENSE). Подробности лицензии доступны в файле LICENSE.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/FlacSy/flk",
    "name": "flk",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "FlacSy",
    "author_email": "flacsy.tw@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/f3/43/2fe5e8cdcc4b71e3da976fdaaf233f780f3808bec284f13c7de549f51741/flk-1.2.5.tar.gz",
    "platform": null,
    "description": "# FLK (File Language Kit)\r\n\r\nFLK - \u044d\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 FL (File Language), \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u0430\u044f \u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\r\n\r\n## \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\r\n\r\n- **\u041f\u0430\u0440\u0441\u0438\u043d\u0433 \u0444\u0430\u0439\u043b\u043e\u0432 FL**: \u0427\u0442\u0435\u043d\u0438\u0435 \u0438 \u0430\u043d\u0430\u043b\u0438\u0437 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u043c `.fl`, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b.\r\n- **\u041f\u0440\u043e\u0441\u0442\u043e\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f**: \u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 `Parser` \u0438 \u043d\u0430\u0447\u043d\u0438\u0442\u0435 \u043f\u0430\u0440\u0441\u0438\u043d\u0433 \u0444\u0430\u0439\u043b\u043e\u0432 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439.\r\n- **\u0420\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u044c**: \u041b\u0435\u0433\u043a\u043e \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445.\r\n\r\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0447\u0435\u0440\u0435\u0437 pip:\r\n\r\n```bash\r\npip install flk\r\n```\r\n\r\n\u0414\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:\r\n\r\n```bash\r\npip install git+https://github.com/FlacSy/flk\r\n```\r\n\r\n## \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\r\n\r\n### \u0418\u043c\u043f\u043e\u0440\u0442 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u0440\u0441\u0435\u0440\u0430\r\n\r\n```python\r\n# \u0418\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u043a\u043b\u0430\u0441\u0441 Parser \u0438\u0437 \u043c\u043e\u0434\u0443\u043b\u044f flk\r\nfrom flk import Parser\r\n\r\n# \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043f\u0430\u0440\u0441\u0435\u0440\u0430\r\nparser = Parser()\r\n\r\n# \u0417\u0430\u0434\u0430\u0435\u043c \u0438\u043c\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439, \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c\r\nvariable_name = \"num_1\"\r\n\r\n# \u041f\u0430\u0440\u0441\u0438\u043c \u0444\u0430\u0439\u043b \"example.fl\" \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435\r\nparser.parse_file(\"example.fl\")\r\n\r\n# \u0418\u0437\u043c\u0435\u043d\u044f\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0432 variable_name, \u043d\u0430 3\r\nparser.edit_var_value(variable_name, 3)\r\n\r\n# \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043e\u0431\u044a\u0435\u043a\u0442 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u0441 \u0438\u043c\u0435\u043d\u0435\u043c, \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u043c \u0432 variable_name\r\nmy_var = parser.get_var(variable_name)\r\n\r\n# \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0442\u0438\u043f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439\r\nvar_type = my_var.get_type()\r\n\r\n# \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439\r\nvar_value = my_var.get_value()\r\n\r\n# \u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \r\nparser.create_var(\"my_custom_var\", \"str\", \"Hello World!\")\r\n\r\n# \u0423\u0434\u0430\u043b\u044f\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e\r\nparser.remove_var(\"my_custom_var\")\r\n\r\n# \u0412\u044b\u0432\u043e\u0434\u0438\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439\r\nprint(f\"\u0422\u0438\u043f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 '{variable_name}': {var_type}\")\r\nprint(f\"\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 '{variable_name}': {var_value}\")\r\n```\r\n\r\n### \u041a\u043e\u043c\u0430\u043d\u0434\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430\r\n\r\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 FLK \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438:\r\n\r\n```bash\r\npython -m flk example.fl\r\n```\r\n\r\n## \u0421\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0444\u0430\u0439\u043b\u0430 FL\r\n\r\n\u0424\u0430\u0439\u043b\u044b FL \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u044b\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442:\r\n\r\n### \u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438\r\n- \u041e\u0434\u043d\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435: \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 `#`\r\n- \u041c\u043d\u043e\u0433\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u044b\u0435: \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u044b `/*` \u0438 `*/`\r\n\r\n### \u041a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b\r\n- \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u043e\u043c `const`, \u0437\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0442\u0438\u043f \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435:\r\n  ```plaintext\r\n  const PI(float) = 3.14159\r\n  ```\r\n\r\n### \u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435\r\n- \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u0442\u0438\u043f\u0430 \u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f:\r\n  ```plaintext\r\n  my_string(str) = \"Hello, world!\"\r\n  ```\r\n\r\n### \u0418\u043c\u043f\u043e\u0440\u0442\u044b\r\n- \u0418\u043c\u043f\u043e\u0440\u0442 \u0434\u0440\u0443\u0433\u0438\u0445 `.fl` \u0444\u0430\u0439\u043b\u043e\u0432:\r\n  ```plaintext\r\n  (import) module_name\r\n  ```\r\n\r\n### \u0410\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438\r\n- \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u0435 \u0430\u0440\u0438\u0444\u043c\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 (`+`, `-`, `*`, `/`, `%`) \u0438 \u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 (`<`, `>`, `=`):\r\n  ```plaintext\r\n  my_sum(float) = $my_int + $my_float\r\n  my_logic_bool(bool) = $my_int < $my_float\r\n  ```\r\n\r\n## \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u0434\u043b\u044f Visual Studio Code\r\n\r\n\u0423\u043b\u0443\u0447\u0448\u0438\u0442\u0435 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044e \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 `.fl` \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043d\u0430\u0448\u0435\u0433\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f:\r\n- [GitHub](https://github.com/FlacSy/FLSyntax)\r\n- [VisualStudio Marketplace](https://marketplace.visualstudio.com/items?itemName=FLSyntax.fl-syntax-highlighter&ssr=false#review-details)\r\n\r\n## TODO\r\n- docstrings\r\n- f strings\r\n\r\n\r\n## \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\r\n\r\nFLK \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434 [Apache License Version 2.0](LICENSE). \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432 \u0444\u0430\u0439\u043b\u0435 LICENSE.\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "FLK - \u044d\u0442\u043e \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430 \u0434\u043b\u044f \u043f\u0430\u0440\u0441\u0438\u043d\u0433\u0430 \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0444\u0430\u0439\u043b\u0430\u043c\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 FL (File Language).",
    "version": "1.2.5",
    "project_urls": {
        "Homepage": "https://github.com/FlacSy/flk"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "967187e36558e6366608f54f57447f4375ff4ea1a04fa1df3efaeca2a41ccdd5",
                "md5": "56a9c709f180835d8ef3a65a903232aa",
                "sha256": "22e23f9e1965881ef894791d901325976e39e5225a7790c2dee044bcbaf9da6e"
            },
            "downloads": -1,
            "filename": "flk-1.2.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "56a9c709f180835d8ef3a65a903232aa",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 12450,
            "upload_time": "2024-06-16T07:03:35",
            "upload_time_iso_8601": "2024-06-16T07:03:35.919149Z",
            "url": "https://files.pythonhosted.org/packages/96/71/87e36558e6366608f54f57447f4375ff4ea1a04fa1df3efaeca2a41ccdd5/flk-1.2.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f3432fe5e8cdcc4b71e3da976fdaaf233f780f3808bec284f13c7de549f51741",
                "md5": "c71a4d20e3d6f40471870aa3e4084498",
                "sha256": "f0154ce2f200651b0dcb622df154d7a16a7b1693fc32560c0d2ad81397a4a11e"
            },
            "downloads": -1,
            "filename": "flk-1.2.5.tar.gz",
            "has_sig": false,
            "md5_digest": "c71a4d20e3d6f40471870aa3e4084498",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 12846,
            "upload_time": "2024-06-16T07:03:37",
            "upload_time_iso_8601": "2024-06-16T07:03:37.333548Z",
            "url": "https://files.pythonhosted.org/packages/f3/43/2fe5e8cdcc4b71e3da976fdaaf233f780f3808bec284f13c7de549f51741/flk-1.2.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-06-16 07:03:37",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "FlacSy",
    "github_project": "flk",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "flk"
}
        
Elapsed time: 0.29780s