Библиотека стандартных изделий

Каталог стандартных изделий (крепёж, подшипники и т. п.) с хранением в SQLite. Две реализации с общей схемой БД и совместимым JSON:

  • dotnet/ — desktop-приложение для Windows 11 на C# / .NET 8 / WPF (основное);
  • src/standard_products/ — Python-пакет и CLI stdparts (генератор и эталон данных).

Desktop-приложение (Windows 11)

cd dotnet
dotnet build
dotnet run --project src/StandardProducts.App

Публикация одним self-contained exe (не требует .NET у пользователя):

dotnet publish src/StandardProducts.App -c Release -r win-x64 \
  --self-contained true -p:PublishSingleFile=true -o publish

Подробнее — dotnet/README.md.

Python CLI

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

stdparts init
stdparts import examples/sample_products.json
stdparts list
stdparts search болт

Без установки пакета:

PYTHONPATH=src python3 -m standard_products init
PYTHONPATH=src python3 -m standard_products import examples/sample_products.json

Команды

Команда Назначение
stdparts init создать базу и схему
stdparts add <обозначение> --name ... добавить изделие
stdparts show <обозначение> показать изделие в JSON
stdparts list [--limit N] список изделий
stdparts search [запрос] [--standard ...] [--category ...] [--material ...] поиск
stdparts import <file.json> импорт (upsert по обозначению)
stdparts export <file.json> экспорт всего каталога
stdparts delete <обозначение> удалить изделие
stdparts stats количество записей

Путь к базе задаётся глобальным флагом --db (по умолчанию standard_products.db):

stdparts --db data/catalog.db list

Добавление с атрибутами

stdparts add "Болт M10x50 ГОСТ 7798-70" \
  --name "Болт с шестигранной головкой" \
  --standard "ГОСТ 7798-70" \
  --category "Крепёж" \
  --material "Сталь 20" \
  --mass 0.045 \
  --attr "резьба=M10" \
  --attr "покрытие=цинк"

Модель данных

Поля изделия описаны в docs/schema.md. Свободные характеристики хранятся в JSON-поле attributes.

Разработка

pip install -e ".[dev]"
pytest
ruff check .
mypy src

Структура

dotnet/                  # C# / WPF приложение (Core + App + xunit)
src/standard_products/   # Python-пакет: db.py, cli.py
tests/                   # pytest
examples/                # пример JSON для импорта
docs/                    # документация, схема, промты
S
Description
No description provided
Readme
82 KiB
0 Stars 1 Watchers 0 Forks
Languages
C# 58.6%
Python 41.4%