Для тех кто интересуется инструментами работы с данными в командной строке, ещё один полезный инструмент trdsql [1]. Утилита написанная на Go позволяет делать SQL запросы к файлам в формате CSV, LTSV, JSON иTBLN. Удивительно что в этом списке нет JSON lines, но в целом утилита выглядит весьма неплохо и полезна для всех кто постоянно работает с файлами и не грузит их в одну из SQL СУБД, но синтаксис SQL любит и знает.
Из интересного - утилита умеет анализировать данные и выдавать рекомендации по запросам.
Ссылки:
[1] https://github.com/noborus/trdsql
#datatools #commandline
Из интересного - утилита умеет анализировать данные и выдавать рекомендации по запросам.
Ссылки:
[1] https://github.com/noborus/trdsql
#datatools #commandline
GitHub
GitHub - noborus/trdsql: CLI tool that can execute SQL queries on CSV, LTSV, JSON, YAML and TBLN. Can output to various formats.
CLI tool that can execute SQL queries on CSV, LTSV, JSON, YAML and TBLN. Can output to various formats. - noborus/trdsql
Для тех кто "любит командную строку также как люблю её я" (c). Командная строка - это стиль жизни, удобство и привычка. Я сижу за командной строкой уже с незапамятных времен UNIX и MS-DOS и для многих задач это гораздо быстрее чем что-либо ещё.
Есть ли оболочки для работы с данными?
- nushell [1] потрясающая штука для тех кто работает в командной строке и работает с данными. Умеет открывать CSV, JSON и кучу других типов файлов и показывать их таблицами. Имеет язык запросов (набор функций) позволяющих таблицами работать с файлами и ещё много всего. Пока один важный минус - не поддерживает файлы JSON lines, Parquet и BSON, но это поправимо и не критично.
- Textualize и Rich [2] набор утилит и библиотека для создания оболочек для Python. Позволяет очень много, а Rich Cli ещё и умеет подсвечивать дата файлы удобным образом.
- bubbletea [3] создаём терминальные приложения на языке Go. Может многое, а ещё его использует gum [4] позволяющий создавать стильные скрипты без строчки кода на Go
В 2021 году в Google проводили исследование по доступности инструментов командной строки с полезными советами как их дорабатывать [5].
Командная строка - это, часто, возможность делать что-то быстро, без задержек и раздражения. Современные инструменты позволяют сделать работу с ними значительно удобнее.
Ссылки:
[1] https://www.nushell.sh
[2] https://www.textualize.io/
[3] https://github.com/charmbracelet/bubbletea
[4] https://github.com/charmbracelet/gum
[5] https://dl.acm.org/doi/fullHtml/10.1145/3411764.3445544
#datatools #opensource #commandline
Есть ли оболочки для работы с данными?
- nushell [1] потрясающая штука для тех кто работает в командной строке и работает с данными. Умеет открывать CSV, JSON и кучу других типов файлов и показывать их таблицами. Имеет язык запросов (набор функций) позволяющих таблицами работать с файлами и ещё много всего. Пока один важный минус - не поддерживает файлы JSON lines, Parquet и BSON, но это поправимо и не критично.
- Textualize и Rich [2] набор утилит и библиотека для создания оболочек для Python. Позволяет очень много, а Rich Cli ещё и умеет подсвечивать дата файлы удобным образом.
- bubbletea [3] создаём терминальные приложения на языке Go. Может многое, а ещё его использует gum [4] позволяющий создавать стильные скрипты без строчки кода на Go
В 2021 году в Google проводили исследование по доступности инструментов командной строки с полезными советами как их дорабатывать [5].
Командная строка - это, часто, возможность делать что-то быстро, без задержек и раздражения. Современные инструменты позволяют сделать работу с ними значительно удобнее.
Ссылки:
[1] https://www.nushell.sh
[2] https://www.textualize.io/
[3] https://github.com/charmbracelet/bubbletea
[4] https://github.com/charmbracelet/gum
[5] https://dl.acm.org/doi/fullHtml/10.1145/3411764.3445544
#datatools #opensource #commandline
В качестве регулярных напоминаний, хотя и разработка кода не основное моё занятие, я довольно много публикую открытого кода, более всего для обработки данных. В первую очередь для поддержания собственных навыков в Python и для того чтобы были инструменты для того что сам же делаешь.
Работа с данными
- datacrafter - ETL движок для NoSQL данных с обработкой их с помощью конфигурационных файлов написанных на YAML. Заход на аналог Meltano или Dagster, но для NoSQL. Используется в datacrafter.ru
- apicrafter - автоматизированная оболочка для генерации REST API для доступа к данным в базах MongoDB. Используется в datacrafter.ru
- metacrafter - утилита по автоматической идентификации семантических типов данных. Используется для идентификации персональных данных в наборах данных. Поддерживает базы данных с SQL, файлы JSON, CSV, JSON lines, BSON и MongoDB
- undatum - утилита для командной строки для обработки иерархических данных в JSON lines и BSON. Поддерживает также CSV, но это не основная возможность. Позволяет считать статистику, извлекать частоты значений, уникальные значения, преобразовывать данные
- mongorefine - экспериментальная библиотека для Python по обработке данных в MongoDB как если бы MongoDB была бы колоночной, а не документальной базой. Позволяет проводить операции над коллекциями данных на колоночном уровне: добавлять, удалять, преобразовывать. Функции похожи на функции OpenRefine, известного открытого инструмента для подготовки данных
- mongo2md - утилита и библиотека для Python по автоматическому документированию коллекций для MongoDB
- diffmongo - библиотека для Python по сравнению данных в коллекциях MongoDB
Парсинг и сбор данных
- newsworker - библиотека для Python по автоматическому извлечению текстов новостей из сайтов где нет RSS лент. Работает полностью автоматически, разбирает структуру страницы, идентифицирует картинки, даты, тексты и формирует новостную ленту. Использует библиотеку qddate
- qddate - библиотека для Python для автоматической идентификации дат в любом написании. Умеет распознавать более 300 форматов на многих языках. Используется во многих других репозиториях и проектах.
- russiannames - библиотека для Python по автоматическому парсингу имён на русском языке, идентификации гендера и немножко национальных признаков. Умеет идентифицировать ФИО в форматах "Иван Петров", "Сидоров Иван Петрович", "Иванов В.А.", "Иванова А." и тд. Включает большую базу фамилий, имен и отчеств.
- docx2csv - библиотека для Python и утилита извлечения таблиц из файлов docx. Очень удобна для генерации CSV файлов из разного рода корпоративных и госотчетов. Но только для docx
- lazyscraper - утилита командной строки по быстрому извлечению таблиц и иных данных из веб-страниц с минимальными усилиями кодирования. Фактически только через написание xpath запроса. Изначально хотелось сделать её ещё более умной, но и это оказалось полезным.
Работа с веб-архивами и цифровая архивация
- metawarc - утилита для автоматизации обработки WARC файлов. Изначально создавалась в целях расследований для автоматизации извлечения свойств файлов MS Office и PDF из веб-архивов. Когда ты вначале всё архивируешь, а потом уже из веб архива собираешь метаданные. Я с её помощью проводил исследования использования пиратского ПО в российских госорганах несколько лет назад.
- apibackuper - утилита по автоматизации выгрузки данных из общедоступных API. Используется в Национальном цифровом архиве и в datacrafter.ru для формирования наборов данных
- ydiskarc - утилита для архивации данных по публичным ссылкам на Яндекс диск. Используется в Национальном цифровом архиве для архивации папок с Яндекс Диска
- wparc - утилита по архивации контента сайтов на Wordpress и медиа файлов с этих сайтов посредством встроенного в Wordpress REST API. Используется в Национальном цифровом архиве
- spcrawler - утилита по выгрузке данных из сайтов на базе Sharepoint используя их общедоступное API. Не завершена, но в работе.
#opensource #datatools #data #commandline #python
Работа с данными
- datacrafter - ETL движок для NoSQL данных с обработкой их с помощью конфигурационных файлов написанных на YAML. Заход на аналог Meltano или Dagster, но для NoSQL. Используется в datacrafter.ru
- apicrafter - автоматизированная оболочка для генерации REST API для доступа к данным в базах MongoDB. Используется в datacrafter.ru
- metacrafter - утилита по автоматической идентификации семантических типов данных. Используется для идентификации персональных данных в наборах данных. Поддерживает базы данных с SQL, файлы JSON, CSV, JSON lines, BSON и MongoDB
- undatum - утилита для командной строки для обработки иерархических данных в JSON lines и BSON. Поддерживает также CSV, но это не основная возможность. Позволяет считать статистику, извлекать частоты значений, уникальные значения, преобразовывать данные
- mongorefine - экспериментальная библиотека для Python по обработке данных в MongoDB как если бы MongoDB была бы колоночной, а не документальной базой. Позволяет проводить операции над коллекциями данных на колоночном уровне: добавлять, удалять, преобразовывать. Функции похожи на функции OpenRefine, известного открытого инструмента для подготовки данных
- mongo2md - утилита и библиотека для Python по автоматическому документированию коллекций для MongoDB
- diffmongo - библиотека для Python по сравнению данных в коллекциях MongoDB
Парсинг и сбор данных
- newsworker - библиотека для Python по автоматическому извлечению текстов новостей из сайтов где нет RSS лент. Работает полностью автоматически, разбирает структуру страницы, идентифицирует картинки, даты, тексты и формирует новостную ленту. Использует библиотеку qddate
- qddate - библиотека для Python для автоматической идентификации дат в любом написании. Умеет распознавать более 300 форматов на многих языках. Используется во многих других репозиториях и проектах.
- russiannames - библиотека для Python по автоматическому парсингу имён на русском языке, идентификации гендера и немножко национальных признаков. Умеет идентифицировать ФИО в форматах "Иван Петров", "Сидоров Иван Петрович", "Иванов В.А.", "Иванова А." и тд. Включает большую базу фамилий, имен и отчеств.
- docx2csv - библиотека для Python и утилита извлечения таблиц из файлов docx. Очень удобна для генерации CSV файлов из разного рода корпоративных и госотчетов. Но только для docx
- lazyscraper - утилита командной строки по быстрому извлечению таблиц и иных данных из веб-страниц с минимальными усилиями кодирования. Фактически только через написание xpath запроса. Изначально хотелось сделать её ещё более умной, но и это оказалось полезным.
Работа с веб-архивами и цифровая архивация
- metawarc - утилита для автоматизации обработки WARC файлов. Изначально создавалась в целях расследований для автоматизации извлечения свойств файлов MS Office и PDF из веб-архивов. Когда ты вначале всё архивируешь, а потом уже из веб архива собираешь метаданные. Я с её помощью проводил исследования использования пиратского ПО в российских госорганах несколько лет назад.
- apibackuper - утилита по автоматизации выгрузки данных из общедоступных API. Используется в Национальном цифровом архиве и в datacrafter.ru для формирования наборов данных
- ydiskarc - утилита для архивации данных по публичным ссылкам на Яндекс диск. Используется в Национальном цифровом архиве для архивации папок с Яндекс Диска
- wparc - утилита по архивации контента сайтов на Wordpress и медиа файлов с этих сайтов посредством встроенного в Wordpress REST API. Используется в Национальном цифровом архиве
- spcrawler - утилита по выгрузке данных из сайтов на базе Sharepoint используя их общедоступное API. Не завершена, но в работе.
#opensource #datatools #data #commandline #python
This media is not supported in your browser
VIEW IN TELEGRAM
Для тех кто любит работать с командной строкой со всем чем только можно замечательный инструмент Mods [1], утилита работающая с OpenAI и LocalAI и генерирующая результаты на основе входящих пайплайнов (конвейеров) от других утилит командной строки, а результат работы mods также пригоден для дальнейшей конвейерной обработки.
Я вот люблю командную строку ещё с того времени когда основными операционными системами были [MS/PC]-DOS и FreeBSD и всегда приятно когда находишь очередной удобный инструмент чтобы можно было делать разное, что раньше было делать сложнее.
Из практичного там мне более всего нравится генератор документации в Markdown и команды вроде
mods "write a new section to this readme for a feature that sends you a free rabbit if you hit r" | glow
Стоит ещё и упомянуть что эта утилиты от команды Charm.sh [2], которые за последние годы насоздавали множество утилит и библиотек для командной строки которые выглядят не только интересно, но и, часто, просто мило.
Много инструментов чтобы сделать ваши утилиты более мимимишными.
Ссылки:
[1] https://github.com/charmbracelet/mods
[2] https://charm.sh/
#opensource #commandline #ai
Я вот люблю командную строку ещё с того времени когда основными операционными системами были [MS/PC]-DOS и FreeBSD и всегда приятно когда находишь очередной удобный инструмент чтобы можно было делать разное, что раньше было делать сложнее.
Из практичного там мне более всего нравится генератор документации в Markdown и команды вроде
mods "write a new section to this readme for a feature that sends you a free rabbit if you hit r" | glow
Стоит ещё и упомянуть что эта утилиты от команды Charm.sh [2], которые за последние годы насоздавали множество утилит и библиотек для командной строки которые выглядят не только интересно, но и, часто, просто мило.
Много инструментов чтобы сделать ваши утилиты более мимимишными.
Ссылки:
[1] https://github.com/charmbracelet/mods
[2] https://charm.sh/
#opensource #commandline #ai
Забавная утилита для командной строки ai-renamer [1] переименует фотографии в зависимости от их содержимого. Бывает полезно, но... очень многие хранят десятки фотографий одного и того же места или объекта и потом выбирают лучшую фотографию из многих.
Очень полезным инструментом был бы такой локальный органайзер который сканировал фото по наличию того что на них есть и давал бы возможность фасетного поиска с новыми тегами и атрибутами. Кстати и для корпоративных банков документов такое было бы полезно.
Ссылки:
[1] https://github.com/ozgrozer/ai-renamer
#ai #commandline #tools
Очень полезным инструментом был бы такой локальный органайзер который сканировал фото по наличию того что на них есть и давал бы возможность фасетного поиска с новыми тегами и атрибутами. Кстати и для корпоративных банков документов такое было бы полезно.
Ссылки:
[1] https://github.com/ozgrozer/ai-renamer
#ai #commandline #tools
Свежий симпатичный поисковик по смыслам слов semantic grep [1] использует Word2Vec для выборки связанных по смыслу слов и уже их ищет по тексту.
Выглядит просто, симпатично, удобно для простого использования и под лицензией MIT. Опубликовано совсем недавно и аналогов такого я нигде не видел.
Если подумать то такую штуку можно было бы сделать с языковой моделью внутри или более сложными алгоритмами чем просто модель Word2Vec.
Лично я большой любитель командной строки и инструментов работы в ней, хороших поисковиков по текстовым файлам всегда нехватает (и всегда много!)
Ссылки:
[1] https://github.com/arunsupe/semantic-grep
#opensource #ai #commandline #tools #data
Выглядит просто, симпатично, удобно для простого использования и под лицензией MIT. Опубликовано совсем недавно и аналогов такого я нигде не видел.
Если подумать то такую штуку можно было бы сделать с языковой моделью внутри или более сложными алгоритмами чем просто модель Word2Vec.
Лично я большой любитель командной строки и инструментов работы в ней, хороших поисковиков по текстовым файлам всегда нехватает (и всегда много!)
Ссылки:
[1] https://github.com/arunsupe/semantic-grep
#opensource #ai #commandline #tools #data
Со стороны и не скажешь, но всю жизнь я лично был большим фанатом командной строки. Потому что печатать быстрее и удобнее чем кликать в интерфейсе, а визуальное растровое отображение элементов интерфейса нужно, на самом деле, очень редко.
Тем больше меня радует начавшийся ренессанс TUI (Text User Interface) приложений, в виде командной строки или в виде интерактивных, но текстовых, инструментов которые можно запускать локально или на терминале.
Поэтому подборка полезного open source с командной строкой и TUI:
- stu [1] текстовый навигатор (TUI) для корзин s3. Удобно для тех кто любит командную строку и работу с серверами через терминал. Работает на базе движка ratatui [2] для Rust, помогающего быстро создавать текстовые приложения.
- csvlens [3] ещё одна утилита с текстовым интерфейсом для манипуляции с CSV файлами. Тоже на базе ratatui. Кстати, стоит посмотреть галерею других TUI приложения, там много полезного [4]
- goaccess [5] текстовый интерфейс для анализатора логов веб сервера в реальном времени.
- visidata [6] текстовый интерфейс для просмотра табличных данных в разных форматах
- htop [7] альтернатива top, монитору процессов для Unix.
Ссылки:
[1] https://github.com/lusingander/stu
[2] https://github.com/ratatui/ratatui
[3] https://github.com/YS-L/csvlens
[4] https://ratatui.rs/showcase/apps/
[5] https://github.com/allinurl/goaccess
[6] https://github.com/saulpw/visidata
[7] https://github.com/htop-dev/htop/
#cli #commandline #opensource #tools #datatools
Тем больше меня радует начавшийся ренессанс TUI (Text User Interface) приложений, в виде командной строки или в виде интерактивных, но текстовых, инструментов которые можно запускать локально или на терминале.
Поэтому подборка полезного open source с командной строкой и TUI:
- stu [1] текстовый навигатор (TUI) для корзин s3. Удобно для тех кто любит командную строку и работу с серверами через терминал. Работает на базе движка ratatui [2] для Rust, помогающего быстро создавать текстовые приложения.
- csvlens [3] ещё одна утилита с текстовым интерфейсом для манипуляции с CSV файлами. Тоже на базе ratatui. Кстати, стоит посмотреть галерею других TUI приложения, там много полезного [4]
- goaccess [5] текстовый интерфейс для анализатора логов веб сервера в реальном времени.
- visidata [6] текстовый интерфейс для просмотра табличных данных в разных форматах
- htop [7] альтернатива top, монитору процессов для Unix.
Ссылки:
[1] https://github.com/lusingander/stu
[2] https://github.com/ratatui/ratatui
[3] https://github.com/YS-L/csvlens
[4] https://ratatui.rs/showcase/apps/
[5] https://github.com/allinurl/goaccess
[6] https://github.com/saulpw/visidata
[7] https://github.com/htop-dev/htop/
#cli #commandline #opensource #tools #datatools
GitHub
GitHub - lusingander/stu: TUI explorer application for Amazon S3 (AWS S3) 🪣
TUI explorer application for Amazon S3 (AWS S3) 🪣. Contribute to lusingander/stu development by creating an account on GitHub.
Для настоящих фанатов работы с командной строкой переосмысление работы с оболочками/терминалами в виде Wave Terminal [1] проекта с открытым кодом для который, с одной стороны даёт возможность работать с несколькими сессиями командной строки, а с другой позволяет организовывать пространство в виде виджетов. Сейчас эти виджеты включают:
- окно терминала
- системная информация по нагрузке памяти и CPU в реальном времени
- папки с файлами
- диалоговое окно с чатботом
- окно браузера
Для Windows прозрачная интеграция с WSL и дистанционным подключением к серверам, для других OS пока не пробовал.
Ко всему ещё и под открытой лицензией, в общем-то для тех кто живёт командной строкой не продукт, а мечта. Хотя я лично для W10 и W11 давно привык к Windows Terminal [2], но этот продукт может его потеснить потому что выглядит неплохо.
И, сразу понятно как создатели могут монетизировать такой продукт:
- виджеты для дистанционного подключения к Grafana, Prometheus, Datadog, Newrelic и тд.
- сервис взаимодействия с чат ботами через свои сервера с возможностью переключения на разные AI модели, собственно это уже проксируется через них для одной модели, просто пока денег за это не берут
- интеграция с дата инженерными платформами, базами данных и тд. где есть конвееры и нагрузка на ресурсы
При этом всё настраивается через файлы конфигурации и инструменты командной строки, организуется в рабочие пространства и можно создать рабочее пространство под конкретный проект, для работы, для работы с домашними устройствами и так далее.
Для дистанционной отладки продуктов и для операций DataOps и DevOps может быть весьма полезной прикладной штукой
Ссылки:
[1] https://github.com/wavetermdev/waveterm
[2] https://github.com/microsoft/terminal
#opensource #commandline
- окно терминала
- системная информация по нагрузке памяти и CPU в реальном времени
- папки с файлами
- диалоговое окно с чатботом
- окно браузера
Для Windows прозрачная интеграция с WSL и дистанционным подключением к серверам, для других OS пока не пробовал.
Ко всему ещё и под открытой лицензией, в общем-то для тех кто живёт командной строкой не продукт, а мечта. Хотя я лично для W10 и W11 давно привык к Windows Terminal [2], но этот продукт может его потеснить потому что выглядит неплохо.
И, сразу понятно как создатели могут монетизировать такой продукт:
- виджеты для дистанционного подключения к Grafana, Prometheus, Datadog, Newrelic и тд.
- сервис взаимодействия с чат ботами через свои сервера с возможностью переключения на разные AI модели, собственно это уже проксируется через них для одной модели, просто пока денег за это не берут
- интеграция с дата инженерными платформами, базами данных и тд. где есть конвееры и нагрузка на ресурсы
При этом всё настраивается через файлы конфигурации и инструменты командной строки, организуется в рабочие пространства и можно создать рабочее пространство под конкретный проект, для работы, для работы с домашними устройствами и так далее.
Для дистанционной отладки продуктов и для операций DataOps и DevOps может быть весьма полезной прикладной штукой
Ссылки:
[1] https://github.com/wavetermdev/waveterm
[2] https://github.com/microsoft/terminal
#opensource #commandline