Thanks to visit codestin.com
Credit goes to github.com

Skip to content

kcatrina/Konfig3

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Конфигурационное управление

Домашнее задание №3

Вариант 11

Задание 3

Разработать инструмент командной строки для учебного конфигурационного

языка, синтаксис которого приведен далее. Этот инструмент преобразует текст из

входного формата в выходной. Синтаксические ошибки выявляются с выдачей сообщений.

Входной текст на учебном конфигурационном языке принимается из

стандартного ввода. Выходной текст на языке yaml попадает в файл, путь к

которому задан ключом командной строки.

image

Инструмент командной строки для преобразования конфигурационного языка в YAML


Описание

Данный проект представляет собой инструмент командной строки, разработанный для

преобразования текста с учебного конфигурационного языка в формат YAML.

Инструмент принимает входной текст из стандартного ввода и записывает преобразованный результат

в файл, путь к которому задается ключом командной строки.

При обнаружении синтаксических ошибок выводятся соответствующие сообщения.

Установка и запуск

  1. Клонируйте репозиторий:

    git clone https://github.com/kcatrina/Konfig3.git
    cd Konfig3
    
  2. Установите необходимые зависимости:

Убедитесь, что у вас установлен Python 3. Если в проекте имеется файл requirements.txt,

установите зависимости с помощью pip:

pip install -r requirements.txt

Примечание: Если файл requirements.txt отсутствует, убедитесь,

что установлены необходимые библиотеки, используемые в проекте.

  1. Запустите инструмент:

Используйте следующую команду для запуска инструмента, указав путь к выходному файлу:

python main.py -o path/to/output.yaml

Ввод текста на учебном конфигурационном языке осуществляется через стандартный ввод.

Например, вы можете использовать перенаправление ввода из файла:

python main.py -o path/to/output.yaml < input.txt

Использование

Инструмент преобразует текст с учебного конфигурационного языка в формат YAML. При запуске укажите путь к выходному файлу с помощью опции -o или --output:

python main.py --output path/to/output.yaml

Ввод текста может осуществляться через стандартный ввод или из файла с использованием

перенаправления. При обнаружении синтаксических ошибок инструмент выведет соответствующие

сообщения в стандартный вывод.

Тестирование

В проекте имеется файл tests.py, содержащий тесты для проверки функциональности

инструмента. Вы можете запустить тесты с помощью следующей команды:

python tests.py

Убедитесь, что все тесты проходят успешно перед использованием инструмента.

Требования

  • Python 3.x

  • Необходимые библиотеки, указанные в requirements.txt (если имеется)

Структура проекта

  • main.py — основной файл с реализацией инструмента.

  • input.txt — пример входного файла с текстом на учебном конфигурационном языке.

  • output.yaml — файл для записи результата преобразования в формат YAML.

  • tests.py — модуль с тестами для проверки функциональности.

  • README.md — документация проекта.

Тест

Пример 1

input.txt

max_connections -> max_conn;
[app_name => "MyApp", version => 1, settings => [max_users => 100, max_connections => @{max_conn}, allowed_ips => (list "192.168.1.1" "192.168.1.2" "10.0.0.1")]      [host => "localhost", port => 5432, credentials => [user => "admin", password => "secret"]]]

output.yaml

- app_name: MyApp
  settings:
    allowed_ips:
    - 192.168.1.1
    - 192.168.1.2
    - 10.0.0.1
    credentials:
      password: secret
      user: admin
    max_connections: max_connections
    max_users: 100
    port: 5432
  version: 1

Пример 2 input.txt

max_connections -> max_conn;
[app_name => "SecondApp", version => 2, settings => [max_users => 1000, max_connections => @{max_conn}, allowed_ips => (list "192.168.1.1" "192.168.1.2" "10.0.0.1")]      [host => "localhost", port => 5172, credentials => [user => "admin", password => "secret"]]]

ouput.yaml

- app_name: SecondApp
  settings:
    allowed_ips:
    - 192.168.1.1
    - 192.168.1.2
    - 10.0.0.1
    credentials:
      password: secret
      user: admin
    max_connections: max_connections
    max_users: 1000
    port: 5172
  version: 2

Пример 3 input.txt

max_connections -> max_conn;
[app_name => "App", version => 16, settings => [max_users => 800, max_connections => @{max_conn}, allowed_ips => (list "192.168.1.1" "192.168.1.2" "10.0.0.1")]      [host => "localhost", port => 1456, credentials => [user => "admin", password => "secret"]]]

ouput.txt

- app_name: App
  settings:
    allowed_ips:
    - 192.168.1.1
    - 192.168.1.2
    - 10.0.0.1
    credentials:
      password: secret
      user: admin
    max_connections: max_connections
    max_users: 800
    port: 1456
  version: 16

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages