@ai-devtools/dbspec-linux-x64 0.7.12 → 0.7.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/bin/dbspec/_internal/base_library.zip +0 -0
  2. package/bin/dbspec/_internal/dbspec.egg-info/PKG-INFO +175 -0
  3. package/bin/dbspec/_internal/dbspec.egg-info/SOURCES.txt +187 -0
  4. package/bin/dbspec/_internal/dbspec.egg-info/dependency_links.txt +1 -0
  5. package/bin/dbspec/_internal/dbspec.egg-info/entry_points.txt +2 -0
  6. package/bin/dbspec/_internal/dbspec.egg-info/requires.txt +8 -0
  7. package/bin/dbspec/_internal/dbspec.egg-info/top_level.txt +1 -0
  8. package/bin/dbspec/_internal/greenlet/_greenlet.cpython-313-x86_64-linux-gnu.so +0 -0
  9. package/bin/dbspec/_internal/libbz2.so.1.0 +0 -0
  10. package/bin/dbspec/_internal/libcom_err-2abe824b.so.2.1 +0 -0
  11. package/bin/dbspec/_internal/libcrypt-13f4f5d0.so.1 +0 -0
  12. package/bin/dbspec/_internal/libcrypto-e7530dde.so.3 +0 -0
  13. package/bin/dbspec/_internal/libcrypto.so.3 +0 -0
  14. package/bin/dbspec/_internal/libffi.so.8 +0 -0
  15. package/bin/dbspec/_internal/libgcc_s.so.1 +0 -0
  16. package/bin/dbspec/_internal/libgssapi_krb5-497db0c6.so.2.2 +0 -0
  17. package/bin/dbspec/_internal/libk5crypto-b1f99d5c.so.3.1 +0 -0
  18. package/bin/dbspec/_internal/libkeyutils-dfe70bd6.so.1.5 +0 -0
  19. package/bin/dbspec/_internal/libkrb5-fcafa220.so.3.3 +0 -0
  20. package/bin/dbspec/_internal/libkrb5support-d0bcff84.so.0.1 +0 -0
  21. package/bin/dbspec/_internal/liblber-9320a7df.so.2.0.200 +0 -0
  22. package/bin/dbspec/_internal/libldap-fa0f4823.so.2.0.200 +0 -0
  23. package/bin/dbspec/_internal/liblzma.so.5 +0 -0
  24. package/bin/dbspec/_internal/libncursesw.so.6 +0 -0
  25. package/bin/dbspec/_internal/libobjc.so.4 +0 -0
  26. package/bin/dbspec/_internal/libpcre-9513aab5.so.1.2.0 +0 -0
  27. package/bin/dbspec/_internal/libpq-2be5f14a.so.5.18 +0 -0
  28. package/bin/{dbspec → dbspec/_internal/libpython3.13.so.1.0} +0 -0
  29. package/bin/dbspec/_internal/libreadline.so.8 +0 -0
  30. package/bin/dbspec/_internal/libsasl2-84219a89.so.3.0.0 +0 -0
  31. package/bin/dbspec/_internal/libselinux-0922c95c.so.1 +0 -0
  32. package/bin/dbspec/_internal/libsqlite3.so.0 +0 -0
  33. package/bin/dbspec/_internal/libssl-4a840876.so.3 +0 -0
  34. package/bin/dbspec/_internal/libssl.so.3 +0 -0
  35. package/bin/dbspec/_internal/libstdc++.so.6 +0 -0
  36. package/bin/dbspec/_internal/libtinfo.so.6 +0 -0
  37. package/bin/dbspec/_internal/libuuid.so.1 +0 -0
  38. package/bin/dbspec/_internal/libz.so.1 +0 -0
  39. package/bin/dbspec/_internal/markupsafe/_speedups.cpython-313-x86_64-linux-gnu.so +0 -0
  40. package/bin/dbspec/_internal/markupsafe-3.0.3.dist-info/INSTALLER +1 -0
  41. package/bin/dbspec/_internal/markupsafe-3.0.3.dist-info/METADATA +74 -0
  42. package/bin/dbspec/_internal/markupsafe-3.0.3.dist-info/RECORD +14 -0
  43. package/bin/dbspec/_internal/markupsafe-3.0.3.dist-info/WHEEL +7 -0
  44. package/bin/dbspec/_internal/markupsafe-3.0.3.dist-info/licenses/LICENSE.txt +28 -0
  45. package/bin/dbspec/_internal/markupsafe-3.0.3.dist-info/top_level.txt +1 -0
  46. package/bin/dbspec/_internal/psycopg-3.3.4.dist-info/INSTALLER +1 -0
  47. package/bin/dbspec/_internal/psycopg-3.3.4.dist-info/METADATA +110 -0
  48. package/bin/dbspec/_internal/psycopg-3.3.4.dist-info/RECORD +174 -0
  49. package/bin/dbspec/_internal/psycopg-3.3.4.dist-info/WHEEL +5 -0
  50. package/bin/dbspec/_internal/psycopg-3.3.4.dist-info/licenses/LICENSE.txt +165 -0
  51. package/bin/dbspec/_internal/psycopg-3.3.4.dist-info/top_level.txt +1 -0
  52. package/bin/dbspec/_internal/psycopg_binary/_psycopg.cpython-313-x86_64-linux-gnu.so +0 -0
  53. package/bin/dbspec/_internal/psycopg_binary/pq.cpython-313-x86_64-linux-gnu.so +0 -0
  54. package/bin/dbspec/_internal/psycopg_binary-3.3.4.dist-info/INSTALLER +1 -0
  55. package/bin/dbspec/_internal/psycopg_binary-3.3.4.dist-info/METADATA +67 -0
  56. package/bin/dbspec/_internal/psycopg_binary-3.3.4.dist-info/RECORD +35 -0
  57. package/bin/dbspec/_internal/psycopg_binary-3.3.4.dist-info/WHEEL +6 -0
  58. package/bin/dbspec/_internal/psycopg_binary-3.3.4.dist-info/licenses/LICENSE.txt +165 -0
  59. package/bin/dbspec/_internal/psycopg_binary-3.3.4.dist-info/sboms/auditwheel.cdx.json +1 -0
  60. package/bin/dbspec/_internal/psycopg_binary-3.3.4.dist-info/top_level.txt +1 -0
  61. package/bin/dbspec/_internal/psycopg_binary.libs/libcom_err-2abe824b.so.2.1 +0 -0
  62. package/bin/dbspec/_internal/psycopg_binary.libs/libcrypt-13f4f5d0.so.1 +0 -0
  63. package/bin/dbspec/_internal/psycopg_binary.libs/libcrypto-e7530dde.so.3 +0 -0
  64. package/bin/dbspec/_internal/psycopg_binary.libs/libgssapi_krb5-497db0c6.so.2.2 +0 -0
  65. package/bin/dbspec/_internal/psycopg_binary.libs/libk5crypto-b1f99d5c.so.3.1 +0 -0
  66. package/bin/dbspec/_internal/psycopg_binary.libs/libkeyutils-dfe70bd6.so.1.5 +0 -0
  67. package/bin/dbspec/_internal/psycopg_binary.libs/libkrb5-fcafa220.so.3.3 +0 -0
  68. package/bin/dbspec/_internal/psycopg_binary.libs/libkrb5support-d0bcff84.so.0.1 +0 -0
  69. package/bin/dbspec/_internal/psycopg_binary.libs/liblber-9320a7df.so.2.0.200 +0 -0
  70. package/bin/dbspec/_internal/psycopg_binary.libs/libldap-fa0f4823.so.2.0.200 +0 -0
  71. package/bin/dbspec/_internal/psycopg_binary.libs/libpcre-9513aab5.so.1.2.0 +0 -0
  72. package/bin/dbspec/_internal/psycopg_binary.libs/libpq-2be5f14a.so.5.18 +0 -0
  73. package/bin/dbspec/_internal/psycopg_binary.libs/libsasl2-84219a89.so.3.0.0 +0 -0
  74. package/bin/dbspec/_internal/psycopg_binary.libs/libselinux-0922c95c.so.1 +0 -0
  75. package/bin/dbspec/_internal/psycopg_binary.libs/libssl-4a840876.so.3 +0 -0
  76. package/bin/dbspec/_internal/pydantic-2.13.4.dist-info/INSTALLER +1 -0
  77. package/bin/dbspec/_internal/pydantic-2.13.4.dist-info/METADATA +1294 -0
  78. package/bin/dbspec/_internal/pydantic-2.13.4.dist-info/RECORD +217 -0
  79. package/bin/dbspec/_internal/pydantic-2.13.4.dist-info/WHEEL +4 -0
  80. package/bin/dbspec/_internal/pydantic-2.13.4.dist-info/licenses/LICENSE +21 -0
  81. package/bin/dbspec/_internal/pydantic_core/_pydantic_core.cpython-313-x86_64-linux-gnu.so +0 -0
  82. package/bin/dbspec/_internal/pyproject.toml +30 -0
  83. package/bin/dbspec/_internal/python3.13/lib-dynload/_asyncio.cpython-313-x86_64-linux-gnu.so +0 -0
  84. package/bin/dbspec/_internal/python3.13/lib-dynload/_bisect.cpython-313-x86_64-linux-gnu.so +0 -0
  85. package/bin/dbspec/_internal/python3.13/lib-dynload/_blake2.cpython-313-x86_64-linux-gnu.so +0 -0
  86. package/bin/dbspec/_internal/python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so +0 -0
  87. package/bin/dbspec/_internal/python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so +0 -0
  88. package/bin/dbspec/_internal/python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so +0 -0
  89. package/bin/dbspec/_internal/python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so +0 -0
  90. package/bin/dbspec/_internal/python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so +0 -0
  91. package/bin/dbspec/_internal/python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so +0 -0
  92. package/bin/dbspec/_internal/python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so +0 -0
  93. package/bin/dbspec/_internal/python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so +0 -0
  94. package/bin/dbspec/_internal/python3.13/lib-dynload/_csv.cpython-313-x86_64-linux-gnu.so +0 -0
  95. package/bin/dbspec/_internal/python3.13/lib-dynload/_ctypes.cpython-313-x86_64-linux-gnu.so +0 -0
  96. package/bin/dbspec/_internal/python3.13/lib-dynload/_curses.cpython-313-x86_64-linux-gnu.so +0 -0
  97. package/bin/dbspec/_internal/python3.13/lib-dynload/_datetime.cpython-313-x86_64-linux-gnu.so +0 -0
  98. package/bin/dbspec/_internal/python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so +0 -0
  99. package/bin/dbspec/_internal/python3.13/lib-dynload/_elementtree.cpython-313-x86_64-linux-gnu.so +0 -0
  100. package/bin/dbspec/_internal/python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so +0 -0
  101. package/bin/dbspec/_internal/python3.13/lib-dynload/_heapq.cpython-313-x86_64-linux-gnu.so +0 -0
  102. package/bin/dbspec/_internal/python3.13/lib-dynload/_json.cpython-313-x86_64-linux-gnu.so +0 -0
  103. package/bin/dbspec/_internal/python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so +0 -0
  104. package/bin/dbspec/_internal/python3.13/lib-dynload/_md5.cpython-313-x86_64-linux-gnu.so +0 -0
  105. package/bin/dbspec/_internal/python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so +0 -0
  106. package/bin/dbspec/_internal/python3.13/lib-dynload/_multiprocessing.cpython-313-x86_64-linux-gnu.so +0 -0
  107. package/bin/dbspec/_internal/python3.13/lib-dynload/_opcode.cpython-313-x86_64-linux-gnu.so +0 -0
  108. package/bin/dbspec/_internal/python3.13/lib-dynload/_pickle.cpython-313-x86_64-linux-gnu.so +0 -0
  109. package/bin/dbspec/_internal/python3.13/lib-dynload/_posixshmem.cpython-313-x86_64-linux-gnu.so +0 -0
  110. package/bin/dbspec/_internal/python3.13/lib-dynload/_posixsubprocess.cpython-313-x86_64-linux-gnu.so +0 -0
  111. package/bin/dbspec/_internal/python3.13/lib-dynload/_queue.cpython-313-x86_64-linux-gnu.so +0 -0
  112. package/bin/dbspec/_internal/python3.13/lib-dynload/_random.cpython-313-x86_64-linux-gnu.so +0 -0
  113. package/bin/dbspec/_internal/python3.13/lib-dynload/_sha1.cpython-313-x86_64-linux-gnu.so +0 -0
  114. package/bin/dbspec/_internal/python3.13/lib-dynload/_sha2.cpython-313-x86_64-linux-gnu.so +0 -0
  115. package/bin/dbspec/_internal/python3.13/lib-dynload/_sha3.cpython-313-x86_64-linux-gnu.so +0 -0
  116. package/bin/dbspec/_internal/python3.13/lib-dynload/_socket.cpython-313-x86_64-linux-gnu.so +0 -0
  117. package/bin/dbspec/_internal/python3.13/lib-dynload/_sqlite3.cpython-313-x86_64-linux-gnu.so +0 -0
  118. package/bin/dbspec/_internal/python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so +0 -0
  119. package/bin/dbspec/_internal/python3.13/lib-dynload/_statistics.cpython-313-x86_64-linux-gnu.so +0 -0
  120. package/bin/dbspec/_internal/python3.13/lib-dynload/_struct.cpython-313-x86_64-linux-gnu.so +0 -0
  121. package/bin/dbspec/_internal/python3.13/lib-dynload/_uuid.cpython-313-x86_64-linux-gnu.so +0 -0
  122. package/bin/dbspec/_internal/python3.13/lib-dynload/_zoneinfo.cpython-313-x86_64-linux-gnu.so +0 -0
  123. package/bin/dbspec/_internal/python3.13/lib-dynload/array.cpython-313-x86_64-linux-gnu.so +0 -0
  124. package/bin/dbspec/_internal/python3.13/lib-dynload/binascii.cpython-313-x86_64-linux-gnu.so +0 -0
  125. package/bin/dbspec/_internal/python3.13/lib-dynload/fcntl.cpython-313-x86_64-linux-gnu.so +0 -0
  126. package/bin/dbspec/_internal/python3.13/lib-dynload/grp.cpython-313-x86_64-linux-gnu.so +0 -0
  127. package/bin/dbspec/_internal/python3.13/lib-dynload/math.cpython-313-x86_64-linux-gnu.so +0 -0
  128. package/bin/dbspec/_internal/python3.13/lib-dynload/mmap.cpython-313-x86_64-linux-gnu.so +0 -0
  129. package/bin/dbspec/_internal/python3.13/lib-dynload/pyexpat.cpython-313-x86_64-linux-gnu.so +0 -0
  130. package/bin/dbspec/_internal/python3.13/lib-dynload/readline.cpython-313-x86_64-linux-gnu.so +0 -0
  131. package/bin/dbspec/_internal/python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so +0 -0
  132. package/bin/dbspec/_internal/python3.13/lib-dynload/select.cpython-313-x86_64-linux-gnu.so +0 -0
  133. package/bin/dbspec/_internal/python3.13/lib-dynload/syslog.cpython-313-x86_64-linux-gnu.so +0 -0
  134. package/bin/dbspec/_internal/python3.13/lib-dynload/termios.cpython-313-x86_64-linux-gnu.so +0 -0
  135. package/bin/dbspec/_internal/python3.13/lib-dynload/unicodedata.cpython-313-x86_64-linux-gnu.so +0 -0
  136. package/bin/dbspec/_internal/python3.13/lib-dynload/zlib.cpython-313-x86_64-linux-gnu.so +0 -0
  137. package/bin/dbspec/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/INSTALLER +1 -0
  138. package/bin/dbspec/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/METADATA +133 -0
  139. package/bin/dbspec/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/RECORD +21 -0
  140. package/bin/dbspec/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/REQUESTED +0 -0
  141. package/bin/dbspec/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/WHEEL +5 -0
  142. package/bin/dbspec/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/licenses/LICENSE +73 -0
  143. package/bin/dbspec/_internal/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/top_level.txt +1 -0
  144. package/bin/dbspec/_internal/setuptools/_vendor/jaraco/text/Lorem ipsum.txt +2 -0
  145. package/bin/dbspec/_internal/sqlalchemy/cyextension/collections.cpython-313-x86_64-linux-gnu.so +0 -0
  146. package/bin/dbspec/_internal/sqlalchemy/cyextension/immutabledict.cpython-313-x86_64-linux-gnu.so +0 -0
  147. package/bin/dbspec/_internal/sqlalchemy/cyextension/processors.cpython-313-x86_64-linux-gnu.so +0 -0
  148. package/bin/dbspec/_internal/sqlalchemy/cyextension/resultproxy.cpython-313-x86_64-linux-gnu.so +0 -0
  149. package/bin/dbspec/_internal/sqlalchemy/cyextension/util.cpython-313-x86_64-linux-gnu.so +0 -0
  150. package/bin/dbspec/_internal/src/resources/sqlalchemy_templates/README.md +59 -0
  151. package/bin/dbspec/_internal/src/resources/sqlalchemy_templates/base.py.j2 +23 -0
  152. package/bin/dbspec/_internal/src/resources/sqlalchemy_templates/domain_init.py.j2 +17 -0
  153. package/bin/dbspec/_internal/src/resources/sqlalchemy_templates/model.py.j2 +315 -0
  154. package/bin/dbspec/_internal/src/resources/sqlalchemy_templates/package_init.py.j2 +34 -0
  155. package/bin/dbspec/_internal/textual-8.2.5.dist-info/INSTALLER +1 -0
  156. package/bin/dbspec/_internal/textual-8.2.5.dist-info/METADATA +266 -0
  157. package/bin/dbspec/_internal/textual-8.2.5.dist-info/RECORD +516 -0
  158. package/bin/dbspec/_internal/textual-8.2.5.dist-info/WHEEL +4 -0
  159. package/bin/dbspec/_internal/textual-8.2.5.dist-info/licenses/LICENSE +21 -0
  160. package/bin/dbspec/dbspec +0 -0
  161. package/package-metadata.json +2 -2
  162. package/package.json +4 -4
@@ -0,0 +1,175 @@
1
+ Metadata-Version: 2.4
2
+ Name: dbspec
3
+ Version: 0.7.14
4
+ Summary: DBSpec: CLI/TUI for database design (Excel as DSL)
5
+ Requires-Python: >=3.11
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: textual
8
+ Requires-Dist: rich
9
+ Requires-Dist: openpyxl
10
+ Requires-Dist: pydantic>=2.0.0
11
+ Requires-Dist: sqlalchemy
12
+ Requires-Dist: alembic
13
+ Requires-Dist: psycopg[binary]
14
+ Requires-Dist: jinja2
15
+
16
+ # DBSpec
17
+
18
+ ![DBSpec TUI Project screen](docs/assets/logo.png)
19
+
20
+
21
+ **Проектирование реляционных баз данных со скоростью продуктовой команды.**
22
+
23
+ DBSpec — CLI/TUI-инструмент для команд, которые моделируют данные в таблицах, но хотят инженерную воспроизводимость и контроль качества.
24
+ Он превращает привычный spreadsheet-процесс в проверяемый delivery pipeline:
25
+
26
+ - XLSX как удобная поверхность редактирования для аналитиков;
27
+ - JSONL (`.dbspec/data/*.jsonl`) как SSOT;
28
+ - CLI/TUI-операции для sync, validation, import, code generation и migrations.
29
+
30
+ ## Why DBSpec
31
+
32
+ Проектирование БД часто ломается между бизнес-смыслом и техническими деталями:
33
+
34
+ - аналитики быстро работают в spreadsheets, но такие изменения сложно проверять и ревьюить;
35
+ - инженерам нужен структурированный источник данных для автоматизации, проверок и генерации кода;
36
+ - команды теряют время на перенос смысла схемы в SQL/models и поддержку синхронизации.
37
+
38
+ DBSpec решает это через единый operational flow: от spreadsheet-ввода до валидированных schema artifacts, пригодных для автоматизации.
39
+
40
+ ## What You Get
41
+
42
+ - быструю итерацию схем без отказа от spreadsheet workflows;
43
+ - воспроизводимую синхронизацию XLSX и SSOT JSONL;
44
+ - встроенную validation для targets `ssot` и `db`;
45
+ - PostgreSQL import в SSOT;
46
+ - генерацию SQLAlchemy models из SSOT;
47
+ - управление Alembic migrations из CLI и TUI;
48
+ - установку CLI через npm package `@ai-devtools/dbspec`.
49
+
50
+ ## Product Vision
51
+
52
+ DBSpec делает проектирование баз данных общим языком для analytics, backend и platform teams.
53
+ Вместо разрозненных инструментов он дает один source of truth и один workflow, понятный людям и исполняемый tooling.
54
+
55
+ ## Quick Start
56
+
57
+ ### 1. Установить CLI
58
+
59
+ ```bash
60
+ npm i -g @ai-devtools/dbspec
61
+ ```
62
+
63
+ После установки команда остается стабильной:
64
+
65
+ ```bash
66
+ dbspec --help
67
+ ```
68
+
69
+ ### 2. Инициализировать проект
70
+
71
+ ```bash
72
+ dbspec init
73
+ ```
74
+
75
+ ### 3. Сгенерировать XLSX template
76
+
77
+ ```bash
78
+ dbspec xlsx --template
79
+ ```
80
+
81
+ ### 4. Синхронизировать и проверить SSOT
82
+
83
+ ```bash
84
+ dbspec sync
85
+ dbspec validate --target=ssot
86
+ ```
87
+
88
+ ### 5. Сгенерировать models
89
+
90
+ ```bash
91
+ dbspec gen models
92
+ ```
93
+
94
+ ## Local Development
95
+
96
+ Для разработки из исходников установите зависимости:
97
+
98
+ ```bash
99
+ make install-deps
100
+ ```
101
+
102
+ ## Run CLI
103
+
104
+ ```bash
105
+ dbspec --help
106
+ ```
107
+
108
+ or
109
+
110
+ ```bash
111
+ uv run python -m src --help
112
+ ```
113
+
114
+ Полный command reference: `docs/cli.md`.
115
+
116
+ ## Run TUI
117
+
118
+ ```bash
119
+ dbspec tui
120
+ ```
121
+
122
+ TUI включает project workflows для init/xlsx/sync/import/validate/codegen/logs/migrations.
123
+
124
+ Migrations user guide: `docs/tui-migrations.md`.
125
+
126
+ ## Configuration
127
+
128
+ Локальная конфигурация: `.dbspec/config.toml`.
129
+
130
+ Подробнее:
131
+
132
+ - `docs/config.md` — все ключи и defaults;
133
+ - `docs/jsonl-format.md` — формат SSOT JSONL;
134
+ - `docs/xlsx-template-structure.md` — структура XLSX и template resources.
135
+
136
+ ## Development and Quality
137
+
138
+ После изменений в коде запускайте:
139
+
140
+ ```bash
141
+ make lint
142
+ make format
143
+ make test
144
+ ```
145
+
146
+ Environment и tooling: `docs/development.md`.
147
+
148
+ ## Distribution
149
+
150
+ Пользовательский канал установки DBSpec — npm root package:
151
+
152
+ ```bash
153
+ npm i -g @ai-devtools/dbspec
154
+ ```
155
+
156
+ Root package `@ai-devtools/dbspec` устанавливает команду `dbspec` и подтягивает matching platform package для поддерживаемой ОС/архитектуры. PyInstaller binary остается внутренним release artifact для сборки npm platform packages, но не является отдельным пользовательским install channel.
157
+
158
+ Для maintainer release flow:
159
+
160
+ ```bash
161
+ make build-binary
162
+ make smoke-binary
163
+ make npm-trust-setup DRY_RUN=1
164
+ make npm-trust-setup
165
+ make release TAG=v0.1.0
166
+ ```
167
+
168
+ Release process и maintainer checklist:
169
+
170
+ - `docs/process/release-process.md`;
171
+ - `docs/process/release-checklist.md`.
172
+
173
+ ## Documentation Index
174
+
175
+ Главный индекс документации: `docs/README.md`.
@@ -0,0 +1,187 @@
1
+ README.md
2
+ pyproject.toml
3
+ dbspec.egg-info/PKG-INFO
4
+ dbspec.egg-info/SOURCES.txt
5
+ dbspec.egg-info/dependency_links.txt
6
+ dbspec.egg-info/entry_points.txt
7
+ dbspec.egg-info/requires.txt
8
+ dbspec.egg-info/top_level.txt
9
+ src/__init__.py
10
+ src/__main__.py
11
+ src/cli.py
12
+ src/cli_output.py
13
+ src/cli_progress.py
14
+ src/ssot_manifest.py
15
+ src/cli_commands/__init__.py
16
+ src/cli_commands/common.py
17
+ src/cli_commands/gen.py
18
+ src/cli_commands/import_.py
19
+ src/cli_commands/init.py
20
+ src/cli_commands/migrations.py
21
+ src/cli_commands/sync.py
22
+ src/cli_commands/tui.py
23
+ src/cli_commands/validate.py
24
+ src/cli_commands/xlsx.py
25
+ src/db_import/__init__.py
26
+ src/db_import/cli_renderer.py
27
+ src/db_import/importer.py
28
+ src/db_import/result.py
29
+ src/db_import/tui_adapter.py
30
+ src/generators/__init__.py
31
+ src/generators/sqlalchemy/__init__.py
32
+ src/generators/sqlalchemy/context.py
33
+ src/generators/sqlalchemy/enums.py
34
+ src/generators/sqlalchemy/generate.py
35
+ src/generators/sqlalchemy/indexes.py
36
+ src/generators/sqlalchemy/naming.py
37
+ src/generators/sqlalchemy/templates.py
38
+ src/generators/sqlalchemy/types.py
39
+ src/logic/__init__.py
40
+ src/logic/check_rules.py
41
+ src/logic/db_validation.py
42
+ src/logic/diagnostics.py
43
+ src/logic/parser.py
44
+ src/logic/validator.py
45
+ src/logic/validation_rules/__init__.py
46
+ src/logic/validation_rules/base.py
47
+ src/logic/validation_rules/check_rules.py
48
+ src/logic/validation_rules/domains.py
49
+ src/logic/validation_rules/enums.py
50
+ src/logic/validation_rules/foreign_keys.py
51
+ src/logic/validation_rules/indexes.py
52
+ src/logic/validation_rules/names.py
53
+ src/logic/validation_rules/references.py
54
+ src/models/__init__.py
55
+ src/models/base.py
56
+ src/models/domain.py
57
+ src/models/project.py
58
+ src/models/table.py
59
+ src/models/tech.py
60
+ src/resources/__init__.py
61
+ src/resources/sqlalchemy_templates/README.md
62
+ src/resources/sqlalchemy_templates/__init__.py
63
+ src/resources/sqlalchemy_templates/base.py.j2
64
+ src/resources/sqlalchemy_templates/domain_init.py.j2
65
+ src/resources/sqlalchemy_templates/model.py.j2
66
+ src/resources/sqlalchemy_templates/package_init.py.j2
67
+ src/reveng/__init__.py
68
+ src/storage/__init__.py
69
+ src/storage/atomic.py
70
+ src/storage/config.py
71
+ src/storage/file_utils.py
72
+ src/storage/init.py
73
+ src/storage/paths.py
74
+ src/storage/sheets.py
75
+ src/storage/config_creators/__init__.py
76
+ src/storage/config_creators/conditional_formatting.py
77
+ src/storage/config_creators/formats.py
78
+ src/storage/config_creators/formulas.py
79
+ src/storage/config_creators/sheet_meta.py
80
+ src/storage/config_creators/styles.py
81
+ src/storage/config_creators/template_data.py
82
+ src/storage/config_creators/validation.py
83
+ src/styles/__init__.py
84
+ src/styles/cli.py
85
+ src/styles/tokens.py
86
+ src/styles/tui.py
87
+ src/tui/__init__.py
88
+ src/tui/app.py
89
+ src/tui/constants.py
90
+ src/tui/db_status.py
91
+ src/tui/initialization.py
92
+ src/tui/keymap.py
93
+ src/tui/registry.py
94
+ src/tui/registry_builder.py
95
+ src/tui/routing.py
96
+ src/tui/screen_helpers.py
97
+ src/tui/startup_metrics.py
98
+ src/tui/state.py
99
+ src/tui/adapters/__init__.py
100
+ src/tui/adapters/alembic_api.py
101
+ src/tui/adapters/config_editor.py
102
+ src/tui/components/__init__.py
103
+ src/tui/components/command_palette.py
104
+ src/tui/components/footer.py
105
+ src/tui/components/header.py
106
+ src/tui/components/help_overlay.py
107
+ src/tui/components/init_dialog.py
108
+ src/tui/components/screen_host.py
109
+ src/tui/components/sidebar.py
110
+ src/tui/components/status_badge.py
111
+ src/tui/jobs/__init__.py
112
+ src/tui/jobs/logs.py
113
+ src/tui/jobs/models.py
114
+ src/tui/jobs/runner.py
115
+ src/tui/layout/__init__.py
116
+ src/tui/layout/responsive.py
117
+ src/tui/layout/shell.py
118
+ src/tui/screens/__init__.py
119
+ src/tui/screens/_base/__init__.py
120
+ src/tui/screens/_base/base.py
121
+ src/tui/screens/codegen/__init__.py
122
+ src/tui/screens/codegen/actions.py
123
+ src/tui/screens/codegen/context.py
124
+ src/tui/screens/codegen/job_flow.py
125
+ src/tui/screens/codegen/screen.py
126
+ src/tui/screens/import_/__init__.py
127
+ src/tui/screens/import_/actions.py
128
+ src/tui/screens/import_/context.py
129
+ src/tui/screens/import_/job_flow.py
130
+ src/tui/screens/import_/screen.py
131
+ src/tui/screens/loading/__init__.py
132
+ src/tui/screens/loading/context.py
133
+ src/tui/screens/loading/screen.py
134
+ src/tui/screens/logs/__init__.py
135
+ src/tui/screens/logs/actions.py
136
+ src/tui/screens/logs/dialogs.py
137
+ src/tui/screens/logs/log_data.py
138
+ src/tui/screens/logs/screen.py
139
+ src/tui/screens/migrations/__init__.py
140
+ src/tui/screens/migrations/context.py
141
+ src/tui/screens/migrations/dialogs.py
142
+ src/tui/screens/migrations/screen.py
143
+ src/tui/screens/project/__init__.py
144
+ src/tui/screens/project/actions.py
145
+ src/tui/screens/project/context.py
146
+ src/tui/screens/project/rendering.py
147
+ src/tui/screens/project/screen.py
148
+ src/tui/screens/sync/__init__.py
149
+ src/tui/screens/sync/actions.py
150
+ src/tui/screens/sync/context.py
151
+ src/tui/screens/sync/job_flow.py
152
+ src/tui/screens/sync/result_view.py
153
+ src/tui/screens/sync/screen.py
154
+ src/tui/screens/validate/__init__.py
155
+ src/tui/screens/validate/actions.py
156
+ src/tui/screens/validate/context.py
157
+ src/tui/screens/validate/job_flow.py
158
+ src/tui/screens/validate/rendering.py
159
+ src/tui/screens/validate/screen.py
160
+ src/tui/screens/xlsx/__init__.py
161
+ src/tui/screens/xlsx/actions.py
162
+ src/tui/screens/xlsx/context.py
163
+ src/tui/screens/xlsx/job_flow.py
164
+ src/tui/screens/xlsx/screen.py
165
+ src/tui/styles/__init__.py
166
+ src/tui/styles/build.py
167
+ src/tui/styles/tokens.py
168
+ src/utils/__init__.py
169
+ src/utils/parsing.py
170
+ src/utils/postgres_types.py
171
+ src/utils/progress.py
172
+ src/utils/sheets.py
173
+ src/utils/type_casting.py
174
+ src/xlsx/__init__.py
175
+ src/xlsx/formatting.py
176
+ src/xlsx/reader.py
177
+ src/xlsx/style_utils.py
178
+ src/xlsx/writer.py
179
+ src/xlsx/template/__init__.py
180
+ src/xlsx/template/apply_conditional.py
181
+ src/xlsx/template/apply_formulas.py
182
+ src/xlsx/template/apply_styles.py
183
+ src/xlsx/template/apply_validation.py
184
+ src/xlsx/template/constants.py
185
+ src/xlsx/template/generator.py
186
+ src/xlsx/template/sheet_data.py
187
+ src/xlsx/template/utils.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ dbspec = src.cli:main
@@ -0,0 +1,8 @@
1
+ textual
2
+ rich
3
+ openpyxl
4
+ pydantic>=2.0.0
5
+ sqlalchemy
6
+ alembic
7
+ psycopg[binary]
8
+ jinja2
Binary file
Binary file
Binary file
@@ -0,0 +1,74 @@
1
+ Metadata-Version: 2.4
2
+ Name: MarkupSafe
3
+ Version: 3.0.3
4
+ Summary: Safely add untrusted strings to HTML/XML markup.
5
+ Maintainer-email: Pallets <contact@palletsprojects.com>
6
+ License-Expression: BSD-3-Clause
7
+ Project-URL: Donate, https://palletsprojects.com/donate
8
+ Project-URL: Documentation, https://markupsafe.palletsprojects.com/
9
+ Project-URL: Changes, https://markupsafe.palletsprojects.com/page/changes/
10
+ Project-URL: Source, https://github.com/pallets/markupsafe/
11
+ Project-URL: Chat, https://discord.gg/pallets
12
+ Classifier: Development Status :: 5 - Production/Stable
13
+ Classifier: Environment :: Web Environment
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python
17
+ Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
18
+ Classifier: Topic :: Text Processing :: Markup :: HTML
19
+ Classifier: Typing :: Typed
20
+ Requires-Python: >=3.9
21
+ Description-Content-Type: text/markdown
22
+ License-File: LICENSE.txt
23
+ Dynamic: license-file
24
+
25
+ <div align="center"><img src="https://raw.githubusercontent.com/pallets/markupsafe/refs/heads/stable/docs/_static/markupsafe-name.svg" alt="" height="150"></div>
26
+
27
+ # MarkupSafe
28
+
29
+ MarkupSafe implements a text object that escapes characters so it is
30
+ safe to use in HTML and XML. Characters that have special meanings are
31
+ replaced so that they display as the actual characters. This mitigates
32
+ injection attacks, meaning untrusted user input can safely be displayed
33
+ on a page.
34
+
35
+
36
+ ## Examples
37
+
38
+ ```pycon
39
+ >>> from markupsafe import Markup, escape
40
+
41
+ >>> # escape replaces special characters and wraps in Markup
42
+ >>> escape("<script>alert(document.cookie);</script>")
43
+ Markup('&lt;script&gt;alert(document.cookie);&lt;/script&gt;')
44
+
45
+ >>> # wrap in Markup to mark text "safe" and prevent escaping
46
+ >>> Markup("<strong>Hello</strong>")
47
+ Markup('<strong>hello</strong>')
48
+
49
+ >>> escape(Markup("<strong>Hello</strong>"))
50
+ Markup('<strong>hello</strong>')
51
+
52
+ >>> # Markup is a str subclass
53
+ >>> # methods and operators escape their arguments
54
+ >>> template = Markup("Hello <em>{name}</em>")
55
+ >>> template.format(name='"World"')
56
+ Markup('Hello <em>&#34;World&#34;</em>')
57
+ ```
58
+
59
+ ## Donate
60
+
61
+ The Pallets organization develops and supports MarkupSafe and other
62
+ popular packages. In order to grow the community of contributors and
63
+ users, and allow the maintainers to devote more time to the projects,
64
+ [please donate today][].
65
+
66
+ [please donate today]: https://palletsprojects.com/donate
67
+
68
+ ## Contributing
69
+
70
+ See our [detailed contributing documentation][contrib] for many ways to
71
+ contribute, including reporting issues, requesting features, asking or answering
72
+ questions, and making PRs.
73
+
74
+ [contrib]: https://palletsprojects.com/contributing/
@@ -0,0 +1,14 @@
1
+ markupsafe-3.0.3.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
2
+ markupsafe-3.0.3.dist-info/METADATA,sha256=ErTMYaf6KIz3Zn7j8hN4bZYZ21f7M_9vk0r7y1wS7IE,2690
3
+ markupsafe-3.0.3.dist-info/RECORD,,
4
+ markupsafe-3.0.3.dist-info/WHEEL,sha256=2iHh9e2o6T3nHtu_NVT7Cs7pebIqF94rZK8zrQfgoJI,190
5
+ markupsafe-3.0.3.dist-info/licenses/LICENSE.txt,sha256=SJqOEQhQntmKN7uYPhHg9-HTHwvY-Zp5yESOf_N9B-o,1475
6
+ markupsafe-3.0.3.dist-info/top_level.txt,sha256=qy0Plje5IJuvsCBjejJyhDCjEAdcDLK_2agVcex8Z6U,11
7
+ markupsafe/__init__.py,sha256=u1fLcNCx0P8E7LT6z3OXf6ipnSmgm6aefne5y-d7o40,13248
8
+ markupsafe/__pycache__/__init__.cpython-313.pyc,,
9
+ markupsafe/__pycache__/_native.cpython-313.pyc,,
10
+ markupsafe/_native.py,sha256=hSLs8Jmz5aqayuengJJ3kdT5PwNpBWpKrmQSdipndC8,210
11
+ markupsafe/_speedups.c,sha256=t3tC6oVV7-bmKUqvCO5pVSky-G8ACIXpWMaJwkNtJjg,4327
12
+ markupsafe/_speedups.cpython-313-x86_64-linux-gnu.so,sha256=HtQydhaq_IkA-gj5GwTaSmjPSgib8LF8sqv-_kqzl6g,44048
13
+ markupsafe/_speedups.pyi,sha256=ENd1bYe7gbBUf2ywyYWOGUpnXOHNJ-cgTNqetlW8h5k,41
14
+ markupsafe/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -0,0 +1,7 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: false
4
+ Tag: cp313-cp313-manylinux_2_17_x86_64
5
+ Tag: cp313-cp313-manylinux2014_x86_64
6
+ Tag: cp313-cp313-manylinux_2_28_x86_64
7
+
@@ -0,0 +1,28 @@
1
+ Copyright 2010 Pallets
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions are
5
+ met:
6
+
7
+ 1. Redistributions of source code must retain the above copyright
8
+ notice, this list of conditions and the following disclaimer.
9
+
10
+ 2. Redistributions in binary form must reproduce the above copyright
11
+ notice, this list of conditions and the following disclaimer in the
12
+ documentation and/or other materials provided with the distribution.
13
+
14
+ 3. Neither the name of the copyright holder nor the names of its
15
+ contributors may be used to endorse or promote products derived from
16
+ this software without specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
21
+ PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
+ HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
+ SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
24
+ TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
25
+ PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
26
+ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27
+ NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.