Name | flk JSON |
Version |
1.2.5
JSON |
| download |
home_page | https://github.com/FlacSy/flk |
Summary | FLK - это библиотека для парсинга и работы с файлами в формате FL (File Language). |
upload_time | 2024-06-16 07:03:37 |
maintainer | None |
docs_url | None |
author | FlacSy |
requires_python | None |
license | MIT |
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"
}