-
Notifications
You must be signed in to change notification settings - Fork 0
General documentation
- В будущем будет переведено на несколько языков :) *
Привет, это полная (а может быть и не полная документация по работе с 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, которое выглядит уже красивее.
Приступим к самим модулям, возможностям и функциям каждого из них
Структура:
-
BGC class
- Переменные цветов
-
FGC class
- Переменные цветов
-
ACC class
- Переменные других параметров отображения
-
MCC class
- Переменные управления курсором
Структура:
- remove_csi method > text
- screate method > string, size(def: 10 ), insert(def: "r" )
- sslice method > text, chunkSize
- parseArgs method > readed
Параметры:
- Обязательные: text
Применение: Убирает все ESC последовательности из строки text
Параметры:
- Обязательные: string
- Необязательные: size(def: 10 ), insert(def: "r" )
Применение: Создает отступ для строки string. Итоговая длина будет равна size, а пробелы будут распологаться слева при insert равном l, или справа при insert равном r
Параметры:
- Обязательные: text, chunkSize
Применение: Возвращает массив частей строки text размерм chunkSize (дробит строку на некоторое количество частей по N символов)
Параметры:
- Обязательные: 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!