Примеры использования и описание API — в документации: https://vsptd.readthedocs.io
ВСПТД — виртуальное строковое пространство технологических данных — описывает специальный способ организации баз знаний и баз данных.
Подробнее узнать о спецификации можно в следующих пособиях:
- Виртуальное строковое пространство технологических данных и знаний. Методы представления данных. Филиппов А. Н.
- Применение методов виртуального строкового пространства технологических данных и знаний в САПР ТП. Филиппов А.Н., Путинцева А.А.
-
максимальная поддержка спецификации ВСПТД;
-
возможность изменения параметров ВСПТД;
-
подробная онлайн-документация и хорошо документированный код (docstrings);
-
код библиотек покрыт тестами (unittests, doctests);
-
подробные исключения, вызываемые в ходе работы с библиотеками;
-
указание типов, где это возможно без потери совместимости с Python < 3.5;
-
безопасное импортирование вида:
from vsptd import * from vsptd.parse import *
-
vsptd
Основная библиотека. Позволяет работать с триплетами, триплетными строками, триплетными выражениями (фрейм-формулами). Также содержит функционал для настройки параметров ВСПТД.
-
parse
Разбор строк на ВСПТД-структуры, а также генерация соответствующих регулярных выражений.
-
extra
Дополнительные функции и ВСПТД-объекты.
-
support
Набор функций для использования во внутренней работе пакета.
-
\vsptd
— пакет библиотек__init__.py
vsptd.py
extra.py
parse.py
support.py
-
\docs
— исходные файлы документации -
\tests
— юнит-тестыtest_Trp.py
— тесты триплетаtest_TrpStr.py
— тесты триплетной строкиtest_TrpExpr.py
— тесты триплетного выраженияtest_VSPTDSettings.py
— тесты класса для настройки ВСПТД-параметровtest_extra.py
— тесты дополнительных структур, функцийtest_parse.py
— тесты модуля разбора строк
-
README.md
— краткое описание пакета -
setup.py
— setup script
Триплет
>>> print(Trp('A', 'B', 'C')) # str
$A.B='C';
>>> print(Trp('A', 'B', 42)) # int
$A.B=42;
>>> print(Trp('A', 'B', 3.14)) # float
$A.B=3.14;
>>> my_trp = Trp('A', 'B', 'C', 'D')
>>> my_trp.prefix
'A'
>>> my_trp.name
'B'
>>> my_trp.value = 42 # изменение значения свойства
>>> str(Trp('A', 'B', 'C'))
"$A.B='C';"
>>> print(Trp('A', 'B', 'C') + Trp('D', 'E', 'F'))
$A.B='C'; $D.E='F';
>>> Trp('A', 'B', 'C') == Trp('A', 'B', 'C')
True
Триплетная строка
>>> my_trp_str = TrpStr(Trp('A', 'B', 'C'), Trp('D', 'E', 'F'))
>>> str(my_trp_str)
"$A.B='C'; $D.E='F';"
>>> TrpStr(Trp('A', 'B', 'C'), Trp('D', 'E', 'F')) == TrpStr(Trp('A', 'B', 'C'))
False
>>> len(TrpStr(Trp('A', 'B', 'C'), Trp('D', 'E', 'F')))
2
>>> 'A' in my_trp_str # по префиксу
True
>>> for trp in my_trp_str:
... print(trp)
$D.E='F';
$A.B='C';
>>> print(TrpStr(Trp('A', 'B', 'C'), Trp('D', 'E', 'F')) + Trp('G', 'H', 'I'))
$D.E='F'; $G.H='I'; $A.B='C';
>>> # доступ к триплету/триплетам
>>> my_trp_str.get('A', 'B')
>>> my_trp_str['A', 'B']
>>> my_trp_str.getpr('A')
>>> my_trp_str['A']
>>> my_trp_str[0]
>>> my_trp_str[:2]
>>> # удаление триплета/триплетов
>>> my_trp_str.rem('A', 'B')
>>> del my_trp_str['D', 'E']
>>> my_trp_str.rempr('A')
>>> del my_trp_str['A']
>>> del my_trp_str[0]
>>> del my_trp_str[:2]
>>> trp_str = TrpStr(Trp('D', 'E', 'F'), Trp('A', 'B', 'C'), Trp('A', 'H', 'P'))
>>> trp_str.sort()
>>> print(trp_str)
$A.B='C'; $A.H='P'; $D.E='F';
- Python 3.3+
pip install vsptd
Установка последней нестабильной версии (альфа, бета):
pip install vsptd --pre
Установка из файла (можно получить, например, со страницы релизов):
pip install <путь к файлу>
Например:
pip install vsptd-1.2.0-py3-none-any.whl
pip install --upgrade vsptd