Выпустил релиз Guile-INI 0.4.0 — парсера INI-формата для GNU Guile:
https://lists.gnu.org/archive/html/guile-user/2022-03/msg00053.html
В новой версии обеспечена совместимость с Guile-SMC 0.4.0.
#guile #ini #parser #projects #dev
https://lists.gnu.org/archive/html/guile-user/2022-03/msg00053.html
В новой версии обеспечена совместимость с Guile-SMC 0.4.0.
#guile #ini #parser #projects #dev
GitHub
GitHub - artyom-poptsov/guile-ini: GNU Guile INI library.
GNU Guile INI library. Contribute to artyom-poptsov/guile-ini development by creating an account on GitHub.
Выпустил релиз Guile-ICS 0.3.0 — парсера для разбора формата iCalendar (RFC5545):
https://lists.gnu.org/archive/html/guile-user/2022-09/msg00004.html
iCalendar — это формат передачи данных календаря и планировщика между сервисами и приложениями.
Это первая версия, где детерминированный конечный автомат компилируется через Guile-SMC.
#dev #guile #parser #icalendar #rfc5545
https://lists.gnu.org/archive/html/guile-user/2022-09/msg00004.html
iCalendar — это формат передачи данных календаря и планировщика между сервисами и приложениями.
Это первая версия, где детерминированный конечный автомат компилируется через Guile-SMC.
#dev #guile #parser #icalendar #rfc5545
GitHub
GitHub - artyom-poptsov/guile-smc: GNU Guile State Machine Compiler
GNU Guile State Machine Compiler. Contribute to artyom-poptsov/guile-smc development by creating an account on GitHub.
Выпустил релиз Guile-INI 0.5.2:
https://lists.gnu.org/archive/html/guile-user/2022-09/msg00049.html
#dev #projects #guile #parser
https://lists.gnu.org/archive/html/guile-user/2022-09/msg00049.html
#dev #projects #guile #parser
GitHub
GitHub - artyom-poptsov/guile-ini: GNU Guile INI library.
GNU Guile INI library. Contribute to artyom-poptsov/guile-ini development by creating an account on GitHub.
Приняли мой патч в GNU Guix с обновлением Guile-INI до версии 0.5.2.
#gnu #guix #guile #ini #parser
$ guix search guile-ini
name: guile-ini
version: 0.5.2
outputs:
+ out: everything else
systems: x86_64-linux i686-linux
dependencies: autoconf@2.69 automake@1.16.3 bash-minimal@5.1.8 guile-lib@0.2.7 guile-smc@0.5.2 guile@3.0.7 pkg-config@0.29.2 texinfo@6.7
location: gnu/packages/guile-xyz.scm:4937:2
homepage: https://github.com/artyom-poptsov/guile-ini
license: GPL 3
synopsis: Guile library for INI format support
description: `guile-ini' is a GNU Guile library for working with the INI format (https://en.wikipedia.org/wiki/INI_file). This library provides API for reading and writing INI data.
relevance: 22
#gnu #guix #guile #ini #parser
GitHub
GitHub - artyom-poptsov/guile-ini: GNU Guile INI library.
GNU Guile INI library. Contribute to artyom-poptsov/guile-ini development by creating an account on GitHub.
👍1
Пробую интегрировать работу с форматом vCard (RFC 6350) в Guile-ICS, поскольку этот формат крайне похож на iCalendar (RFC 5545.) Хочу ещё добавить также конвертацию табличных данных в vCard, чтобы массово можно было создавать карточки контактов на основе некой адресной книги (актуальная задача по работе сейчас.)
Для чтения табличных данных как раз можно использовать Guile-DSV. ^_^
Пример данных vCard:
Пример описания содержимого vCard утилитой
Режим "pretty print":
#projects #guile #ics #parser #rfc5545 #rfc6350
Для чтения табличных данных как раз можно использовать Guile-DSV. ^_^
Пример данных vCard:
BEGIN:VCARD
VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe
N:Doe;J.;;;
EMAIL;PID=1.1:jdoe@example.com
EMAIL;PID=2.1:boss@example.com
TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD
Пример описания содержимого vCard утилитой
ics
, которая идёт в комплекте к Guile-ICS:$ ics describe vcard.vcf
;;; VCARD
;;; CLIENTPIDMAP (TEXT: Text type: RFC5545, 3.3.11)
;;; 1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
;;; TEL (TEXT: Text type: RFC5545, 3.3.11)
;;; tel:+1-666-666-6666
;;; VALUE uri
;;; PID 2.1
;;; TEL (TEXT: Text type: RFC5545, 3.3.11)
;;; tel:+1-555-555-5555
;;; VALUE uri
;;; PID 1.1
;;; EMAIL (TEXT: Text type: RFC5545, 3.3.11)
;;; boss@example.com
;;; PID 2.1
;;; EMAIL (TEXT: Text type: RFC5545, 3.3.11)
;;; jdoe@example.com
;;; PID 1.1
;;; N (TEXT: Text type: RFC5545, 3.3.11)
;;; Doe;J.;;;
;;; FN (TEXT: Text type: RFC5545, 3.3.11)
;;; J. Doe
;;; PID 1.1
;;; UID (TEXT: Text type: RFC5545, 3.3.11)
;;; urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
;;; VERSION (TEXT: Text type: RFC5545, 3.3.11)
;;; 4.0
Режим "pretty print":
$ ics print vcard.vcf
BEGIN: VCARD
CLIENTPIDMAP: 1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
TEL;VALUE=uri;PID=2.1: tel:+1-666-666-6666
TEL;VALUE=uri;PID=1.1: tel:+1-555-555-5555
EMAIL;PID=2.1: boss@example.com
EMAIL;PID=1.1: jdoe@example.com
N: Doe;J.;;;
FN;PID=1.1: J. Doe
UID: urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
VERSION: 4.0
END: VCARD
#projects #guile #ics #parser #rfc5545 #rfc6350
GitHub
GitHub - artyom-poptsov/guile-ics: iCalendar/vCard parser for GNU Guile.
iCalendar/vCard parser for GNU Guile. Contribute to artyom-poptsov/guile-ics development by creating an account on GitHub.
❤1
Выпустил релиз Guile-ICS 0.4.0:
https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.4.0
Анонс в списке рассылки GNU Guile:
https://lists.gnu.org/archive/html/guile-user/2022-10/msg00075.html
Основные изменения:
- Добавлена базовая поддержка формата vCard (RFC 6350), используемого для передачи контактных данных.
- Улучшена утилита командной строки
С помощью
Например, пусть у вас в файле
То из него можно получить легко контактные карточки через
Отправил также патч с обновлением Guile-ICS в GNU Guix:
https://mail.gnu.org/archive/html/guix-patches/2022-10/msg01846.html
#projects #guile #rfc5545 #rfc6350 #parser
https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.4.0
Анонс в списке рассылки GNU Guile:
https://lists.gnu.org/archive/html/guile-user/2022-10/msg00075.html
Основные изменения:
- Добавлена базовая поддержка формата vCard (RFC 6350), используемого для передачи контактных данных.
- Улучшена утилита командной строки
ics
: теперь она лучше структуирована и поддерживает команды print
, describe
и convert
.С помощью
ics convert
теперь можно делать преобразование данных DSV (Delimiter-Separated Values) в iCalendar/vCard.Например, пусть у вас в файле
data.csv
есть следующие данные:ORG,TITLE,FN,EMAILКак можно видеть, первая строка таблицы содержит названия параметров карточки пользователя, тогда как каждая строка описывает по сути одну такую карточку.
Example Organisation,Programmer,Eva Luator,eva@example.org
Example Organisation,Programmer,Random J. Hacker,rjh@example.org
То из него можно получить легко контактные карточки через
ics convert
:$ ics convert data.csvЕсли вывод
BEGIN:VCARD
EMAIL:eva@example.org
FN:Eva Luator
TITLE:Programmer
ORG:Example Organisation
END:VCARD
BEGIN:VCARD
EMAIL:rjh@example.org
FN:Random J. Hacker
TITLE:Programmer
ORG:Example Organisation
END:VCARD
ics convert
перенаправить в файл, то получится файл с контактными данными. Потом этот файл можно загрузить в почтовый клиент, или приложение контактов в мобильном устройстве, и таким образом сделать массовую загрузку контактов (реальная задача, которая меня и сподвигла на реализацию этой возможности.)Отправил также патч с обновлением Guile-ICS в GNU Guix:
https://mail.gnu.org/archive/html/guix-patches/2022-10/msg01846.html
#projects #guile #rfc5545 #rfc6350 #parser
GitHub
Release v0.4.0 · artyom-poptsov/guile-ics
Version 0.4.0
👍1
Наконец-то получилось корректно декодировать изображение PNG, где встречаются все 5 видов фильтров.
По поводу корректности обработки альфа-канала пока не уверен, нужны ещё тесты.
А вот здесь вы можете увидеть результат обработки декодированного изображения — инверсии цветов.
\o/
#projects #guile #png #parser
По поводу корректности обработки альфа-канала пока не уверен, нужны ещё тесты.
А вот здесь вы можете увидеть результат обработки декодированного изображения — инверсии цветов.
\o/
#projects #guile #png #parser
🔥4
Пример эффекта соларизации с порогом 100. Соларизация похоже на инверсию цветов, с той разницей, что при соларизации инверсия цветов применяется только для тех цветовых каналов, значения которых больше (или меньше, как в моём случае), чем пороговое. Знак больше-меньше выбирается вместе с пороговым значением и влияет на конечный эффект.
Кстати, эту картинку я сделал как-то давно для группы своих дипломников в Telegram.
Исходный код:
Кстати, эту картинку я сделал как-то давно для группы своих дипломников в Telegram.
Исходный код:
(use-modules (png)#projects #guile #png #parser #image_processing
(png image)
(png image-processing))
(define (main args)
(let* ((image (png->scm))
(result (png-image-filter-solarize image
100)))
(scm->png result)))
⚡3
Выпустил релиз Guile-PNG 0.3.0:
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.3.0
В новом релизе:
- Улучшен парсер PNG.
- Улучшен кодировщик PNG.
- Библиотека теперь даёт возможность создавать PNG-изображения "с нуля", а не только загружать готовые.
- Добавлена возможность рисовать многоугольники и прямоугольники с заливкой.
- Обновлена и дополнена документация.
- Добавлены новые тесты.
#guile #png #parser #projects #dev
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.3.0
В новом релизе:
- Улучшен парсер PNG.
- Улучшен кодировщик PNG.
- Библиотека теперь даёт возможность создавать PNG-изображения "с нуля", а не только загружать готовые.
- Добавлена возможность рисовать многоугольники и прямоугольники с заливкой.
- Обновлена и дополнена документация.
- Добавлены новые тесты.
#guile #png #parser #projects #dev
GitHub
Release v0.3.0 · artyom-poptsov/guile-png
Version 0.3.0
❤2👍2
Выпустил релиз Guile-DSV 0.7.1:
https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.7.1
В новом релизе реализована возможность добавлять нумерацию строкам и столбцам таблицы.
Анонс в рассылке Guile-User:
https://mail.gnu.org/archive/html/guile-user/2023-10/msg00082.html
#guile #projects #dsv #parser
https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.7.1
В новом релизе реализована возможность добавлять нумерацию строкам и столбцам таблицы.
Анонс в рассылке Guile-User:
https://mail.gnu.org/archive/html/guile-user/2023-10/msg00082.html
#guile #projects #dsv #parser
⚡1
#projects #guile #guile_smc #parser
Выпустил релиз Guile-SMC 0.6.3:
https://github.com/artyom-poptsov/guile-smc/releases/tag/v0.6.3
Ключевые изменения:
- Парсер PlantUML теперь обрабатывает многострочные комментарии.
- Исправление ошибки в
- Парсер PlantUML теперь пропускает блоки, начинающиеся с
- Для блока
- Улучшение информативности ошибок в парсере PlantUML.
Выпустил релиз Guile-SMC 0.6.3:
https://github.com/artyom-poptsov/guile-smc/releases/tag/v0.6.3
Ключевые изменения:
- Парсер PlantUML теперь обрабатывает многострочные комментарии.
- Исправление ошибки в
(smc context functional char)
: теперь процедура pre-action
правильно считает количество прочитанных строк (до этого количество прочитанных строк инкрементировалось каждый раз, когда читался любой новый символ.)- Парсер PlantUML теперь пропускает блоки, начинающиеся с
hide
(например, hide empty description
)- Для блока
legend
парсер PlantUML теперь позволяет указывать конец блока, как end legend
(в дополнении к endlegend
.)- Улучшение информативности ошибок в парсере PlantUML.
GitHub
Release v0.6.3 · artyom-poptsov/guile-smc
Version 0.6.3 (2023-12-02)
PlantUML parser now handles multi-line comments
(smc context functional char): Bugfix
pre-action procedure would increment the row counter even when the input
event is no...
PlantUML parser now handles multi-line comments
(smc context functional char): Bugfix
pre-action procedure would increment the row counter even when the input
event is no...
⚡1
Выпустил релиз Guile-DSV 0.7.2:
https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.7.2
В новой версии:
- Исправлена ошибка обработки таблиц с неравномерным количеством столбцов в строках. Теперь Guile-DSV предоставляет возможность проверять корректность таблиц на этапе парсинга и перед выводом, и выдавать ошибку на более ранних этапах. Также ошибки теперь более понятные и указывают на проблемное место в исходных данных. Это поведение включено по-умолчанию для CLI. Для API же это по-умолчанию выключено, т.к. это во-первых сохраняет совместимость со старым поведением, и во-вторых позволяет пользователю самостоятельно решить, нужно ли выдавать ошибку при чтении проблемных данных, или же обработать это другим способом, уже после чтения.
- Исправлена ошибка с форматированием таблиц: теперь оно корректно работает для таблиц, чей размер меньше двух столбцов.
- Исправлен
- Добавлены новые файлы в репозиторий:
#guile #guile_dsv #parser #projects #scheme
https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.7.2
В новой версии:
- Исправлена ошибка обработки таблиц с неравномерным количеством столбцов в строках. Теперь Guile-DSV предоставляет возможность проверять корректность таблиц на этапе парсинга и перед выводом, и выдавать ошибку на более ранних этапах. Также ошибки теперь более понятные и указывают на проблемное место в исходных данных. Это поведение включено по-умолчанию для CLI. Для API же это по-умолчанию выключено, т.к. это во-первых сохраняет совместимость со старым поведением, и во-вторых позволяет пользователю самостоятельно решить, нужно ли выдавать ошибку при чтении проблемных данных, или же обработать это другим способом, уже после чтения.
- Исправлена ошибка с форматированием таблиц: теперь оно корректно работает для таблиц, чей размер меньше двух столбцов.
- Исправлен
make distcheck
— теперь оно корректно завершается.- Добавлены новые файлы в репозиторий:
ARCHITECTURE.org
описывает архитектуру проекта (как предложено здесь); CODE_OF_CONDUCT.org
описывает правила для сообщества разработчиков и контрибьюторов, как предложено здесь.#guile #guile_dsv #parser #projects #scheme
GitHub
Release v0.7.2 · artyom-poptsov/guile-dsv
Table of Contents
Changes in version 0.7.2 (2024-08-04)
Bugfixes
Parsers now can check if the table rows have consistent lengths
Table formatter now handles tables with less than 2 columns
Fix m...
Changes in version 0.7.2 (2024-08-04)
Bugfixes
Parsers now can check if the table rows have consistent lengths
Table formatter now handles tables with less than 2 columns
Fix m...
⚡2👾1