Skip to content

General documentation

NewLife1324 edited this page Dec 13, 2020 · 1 revision
  • В будущем будет переведено на несколько языков :) *

Вступление

Привет, это полная (а может быть и не полная документация по работе с NewLifeUtils 5 Вовремя переписывания было множество проблем с тем, как лучше реализовать код. Проект с одной стороны очень огромный, с другой стороны - очень маленький. Не смотря на все это я продолжаю над ним работать достаточно упорно, что бы все работало так, как задумано лично мной. На некоторых страницах уже было указано предназначение этого проекта. Так же как и его отдельных модулей. Проект не в коем случае не коммерческий. Можно сказать что я всего лишь проверяю свои силы в программировании. Если у меня хватит энтузиазма продолжить разработку, то я обязательно буду развивать проект как можно дольше. Я не знаю в какой момент я решил начать делать неки составные модули, но сначала все начиналось с простого класса, цель которого - выводить время сообщения на экран. По сути - оно мне не нужно. Но такой вывод выглядит более менее опрятно. Дальше мне потребовалось выводить текст разными цветами. Ошибки - красными, предупреждения зелеными. Теперь же одноименный модуль имеет 5 видов сообщений - лог, предупреждение, ошибка, подсказка и данные ввода. Я решил использовать colorama. Потом я подумал о кросплатформенности. Не смотря на то что мой проект не коммерческий и я не планировал, что бы мой код запускался на других компьютерах с заранее неизвестной установленной операционной системой. Я решил, что мне надо как то понять, как работает цветной вывод в консоли. Как оказалось для всех консолей он достаточно схож. Оказалось что все что надо было вывести - служебные символы, символы действия и символы параметров. Служебные символы в данном случае, это символ ESC и [. Вся комбинация сиволов называлась ESC-послеовательностью. Теперь мне оставалось только сделать мобильный набор переменных со строками, содержащими эти самые ESC-послеовательности. Я естественно решил создать класс, содержащий все нужные переменные. Я пробовал перебирать зачения параметра и действия, открыл для себя много интересных фишек консоли. На Linux они кстати тоже хорошо работают. (сам я привык писать код на Windows). Со временем появился новый модуль - теперь уже устаревший и все еще не переделанный Random модуль. Вся его цель - создавать сид для генерации чисел. ИМЕННО сид, который сам был очень большим огромным числом. Недавно при эксперементах я решил замерить время вычесления 1-2000 степеи некоторого выражения, которое в итоге давало число с 10-20 знаков. При этом надо было задать некоторую формулу при которой число выводилось в читаемой форме. Допустим есть число 123456789011223344, а формула - 22335. Значит требуется что бы были отделены 2 числа, затем еще 2 числа, потом 3, 3, и в конце стояла группа из 5 цифр. Итог 12 34 567 890 11223. Оставшеся число - пропадает. В итоге для модуля random устанавливается число 123456789011223, а отображается уже1 2 34 567 890 11223, которое выглядит уже красивее.

Начало

Приступим к самим модулям, возможностям и функциям каждого из них

ColorModule

Структура:

  • BGC class
    • Переменные цветов
  • FGC class
    • Переменные цветов
  • ACC class
    • Переменные других параметров отображения
  • MCC class
    • Переменные управления курсором

StringUtilModule:

Структура:

  • remove_csi method > text
  • screate method > string, size(def: 10 ), insert(def: "r" )
  • sslice method > text, chunkSize
  • parseArgs method > readed

remove_csi

Параметры:

  • Обязательные: text

Применение: Убирает все ESC последовательности из строки text

screate

Параметры:

  • Обязательные: string
  • Необязательные: size(def: 10 ), insert(def: "r" )

Применение: Создает отступ для строки string. Итоговая длина будет равна size, а пробелы будут распологаться слева при insert равном l, или справа при insert равном r

sslice

Параметры:

  • Обязательные: text, chunkSize

Применение: Возвращает массив частей строки text размерм chunkSize (дробит строку на некоторое количество частей по N символов)

parseArgs

Параметры:

  • Обязательные: readed

Применение: Возвращает структуру содержащую строку "command" и массив параметров "param". строка command содержит первое слово в строке, "param" - список следующих слов в строке. Если заключить несколько слов в кавычки - они будут приняты как одно и будет возвращена группа одиночных слов в одной строке без кавычек

Сырой материал для документации

  • ** ColorModule: BGC FGC ACC MCC**
  • ** StringUtilModule: remove_csi(text) screate(string, size=10, insert="r") sslice(text, chunkSize) parseArgs(readed))**
  • LoggerModule = File, Color, String, FileLogger: init(self, File=None, Color=None, String=None, FileLogger=None, enableFileLog=True), tag_check(tag, default) to_format(pattern, args) out(text) log,wrn,err,tip,read(msg, tag), cstm(pattern, args)
  • ExceptModule = Logger, String: except_print(exception, exceptionType="err", tb=True)
  • TableBuildModule = String, Color: init(default), find_max(row_count, data), createTable(self,rowCount,sizes,data,title="TABLE",header=True,tableElement="",color="",align="l",), createMultilineTable( self, rowCount, sizes, data, title="TABLE", tableElement="", color="", align="l",)
  • CustomShellModule = Logger, Except, String, Color,: init( self, name="root", about="default console", )registerInitTask(regClass) registerExitTask(regClass) registerGlobalFunctions(regClass) registerCommand(regClass) main()

Hello world!

Clone this wiki locally