projectdavid-orm 1.5.0__tar.gz → 1.6.1__tar.gz
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.
- projectdavid_orm-1.6.1/CHANGELOG.md +244 -0
- {projectdavid_orm-1.5.0/src/projectdavid_orm.egg-info → projectdavid_orm-1.6.1}/PKG-INFO +10 -5
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/pyproject.toml +22 -11
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_common.egg-info/PKG-INFO +2 -2
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_common.egg-info/SOURCES.txt +1 -1
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm/ormInterface.py +0 -2
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm/projectdavid_orm/models.py +79 -131
- projectdavid_orm-1.6.1/src/projectdavid_orm/utilities/__init__.py +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1/src/projectdavid_orm.egg-info}/PKG-INFO +10 -5
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm.egg-info/requires.txt +5 -2
- projectdavid_orm-1.5.0/CHANGELOG.md +0 -156
- projectdavid_orm-1.5.0/src/projectdavid_orm.egg-info/dependency_links.txt +0 -1
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/LICENSE +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/MANIFEST.in +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/README.md +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/setup.cfg +0 -0
- /projectdavid_orm-1.5.0/src/projectdavid_orm/projectdavid_orm/__init__.py → /projectdavid_orm-1.6.1/src/projectdavid_common.egg-info/dependency_links.txt +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_common.egg-info/entry_points.txt +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_common.egg-info/requires.txt +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_common.egg-info/top_level.txt +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm/__init__.py +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm/constants/__init__.py +0 -0
- {projectdavid_orm-1.5.0/src/projectdavid_orm/utilities → projectdavid_orm-1.6.1/src/projectdavid_orm/projectdavid_orm}/__init__.py +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm/projectdavid_orm/base.py +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm.egg-info/SOURCES.txt +0 -0
- {projectdavid_orm-1.5.0/src/projectdavid_common.egg-info → projectdavid_orm-1.6.1/src/projectdavid_orm.egg-info}/dependency_links.txt +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm.egg-info/top_level.txt +0 -0
- {projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/tests/test_clients.py +0 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
# [1.6.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.5.0...v1.6.0) (2026-03-29)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* publish v1.6.0 — skip duplicate v1.5.0 on PyPI ([636aaf6](https://github.com/project-david-ai/projectdavid-orm/commit/636aaf67a7cedfdd094d47229984074b1305b491))
|
|
7
|
+
|
|
8
|
+
# [1.5.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.4.0...v1.5.0) (2026-03-29)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
* correct semantic-release script path to update_version.py ([59af721](https://github.com/project-david-ai/projectdavid-orm/commit/59af721199849f06c89804df3b28d287e2aa47f6))
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
### Features
|
|
17
|
+
|
|
18
|
+
* add max_tokens to Assistant, fix temperature and top_p Integer to Float on Assistant and Run ([b990759](https://github.com/project-david-ai/projectdavid-orm/commit/b9907590bdf46c1d20f908faac7dcfe3ed70d404))
|
|
19
|
+
* add nullable endpoint field to BaseModel ([a902d5b](https://github.com/project-david-ai/projectdavid-orm/commit/a902d5ba45852cfbb8f6cd31ebcfed3850fc2354))
|
|
20
|
+
* add nullable endpoint field to BaseModel ([6f4aa94](https://github.com/project-david-ai/projectdavid-orm/commit/6f4aa949a7167cdce9311c8d9b03ecd16d373830))
|
|
21
|
+
* bump to v1.6.0 — clear duplicate PyPI artefact ([0e616e3](https://github.com/project-david-ai/projectdavid-orm/commit/0e616e36e2a1007e4276223f25443f00c01e727d))
|
|
22
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([edf837a](https://github.com/project-david-ai/projectdavid-orm/commit/edf837a7810ee744df011d81f56e5f761ba4135a))
|
|
23
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([f4165da](https://github.com/project-david-ai/projectdavid-orm/commit/f4165da7a1784b2e9e89b01384a2a9fb2d898b61))
|
|
24
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([ff4a08b](https://github.com/project-david-ai/projectdavid-orm/commit/ff4a08b6b92cb4355568cc299c2e6b51f248cd34))
|
|
25
|
+
* Phase 4 ([fb58012](https://github.com/project-david-ai/projectdavid-orm/commit/fb580125b975369c3a3a089f177c31e74561c72e))
|
|
26
|
+
* Phase 4 ([6c0c17c](https://github.com/project-david-ai/projectdavid-orm/commit/6c0c17cae3f4560b6dbed4621a4e6844a982d525))
|
|
27
|
+
* Phase 5a ([0ea00c5](https://github.com/project-david-ai/projectdavid-orm/commit/0ea00c5ccde65c4e9d191ed1239e0fe1d069c4d0))
|
|
28
|
+
* Phase 5a ([32cd97b](https://github.com/project-david-ai/projectdavid-orm/commit/32cd97b97e6fdff515318a61d902d3eb755447d8))
|
|
29
|
+
* trigger fresh publish after tag cleanup ([3ad924b](https://github.com/project-david-ai/projectdavid-orm/commit/3ad924be92635c8e4b2f870a021f47496cab32cb))
|
|
30
|
+
* trigger release — max_tokens, Float fix, remove BatfishSnapshot, Gold Standard CI ([1569cff](https://github.com/project-david-ai/projectdavid-orm/commit/1569cffcf18bb4fc44f897707ee2aa6e362edc72))
|
|
31
|
+
|
|
32
|
+
# [1.5.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.4.0...v1.5.0) (2026-03-29)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
### Bug Fixes
|
|
36
|
+
|
|
37
|
+
* correct semantic-release script path to update_version.py ([59af721](https://github.com/project-david-ai/projectdavid-orm/commit/59af721199849f06c89804df3b28d287e2aa47f6))
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
### Features
|
|
41
|
+
|
|
42
|
+
* add max_tokens to Assistant, fix temperature and top_p Integer to Float on Assistant and Run ([b990759](https://github.com/project-david-ai/projectdavid-orm/commit/b9907590bdf46c1d20f908faac7dcfe3ed70d404))
|
|
43
|
+
* add nullable endpoint field to BaseModel ([a902d5b](https://github.com/project-david-ai/projectdavid-orm/commit/a902d5ba45852cfbb8f6cd31ebcfed3850fc2354))
|
|
44
|
+
* add nullable endpoint field to BaseModel ([6f4aa94](https://github.com/project-david-ai/projectdavid-orm/commit/6f4aa949a7167cdce9311c8d9b03ecd16d373830))
|
|
45
|
+
* bump to v1.6.0 — clear duplicate PyPI artefact ([0e616e3](https://github.com/project-david-ai/projectdavid-orm/commit/0e616e36e2a1007e4276223f25443f00c01e727d))
|
|
46
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([edf837a](https://github.com/project-david-ai/projectdavid-orm/commit/edf837a7810ee744df011d81f56e5f761ba4135a))
|
|
47
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([f4165da](https://github.com/project-david-ai/projectdavid-orm/commit/f4165da7a1784b2e9e89b01384a2a9fb2d898b61))
|
|
48
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([ff4a08b](https://github.com/project-david-ai/projectdavid-orm/commit/ff4a08b6b92cb4355568cc299c2e6b51f248cd34))
|
|
49
|
+
* Phase 4 ([fb58012](https://github.com/project-david-ai/projectdavid-orm/commit/fb580125b975369c3a3a089f177c31e74561c72e))
|
|
50
|
+
* Phase 4 ([6c0c17c](https://github.com/project-david-ai/projectdavid-orm/commit/6c0c17cae3f4560b6dbed4621a4e6844a982d525))
|
|
51
|
+
* Phase 5a ([0ea00c5](https://github.com/project-david-ai/projectdavid-orm/commit/0ea00c5ccde65c4e9d191ed1239e0fe1d069c4d0))
|
|
52
|
+
* Phase 5a ([32cd97b](https://github.com/project-david-ai/projectdavid-orm/commit/32cd97b97e6fdff515318a61d902d3eb755447d8))
|
|
53
|
+
* trigger release — max_tokens, Float fix, remove BatfishSnapshot, Gold Standard CI ([1569cff](https://github.com/project-david-ai/projectdavid-orm/commit/1569cffcf18bb4fc44f897707ee2aa6e362edc72))
|
|
54
|
+
|
|
55
|
+
# [1.5.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.4.0...v1.5.0) (2026-03-29)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
### Bug Fixes
|
|
59
|
+
|
|
60
|
+
* correct semantic-release script path to update_version.py ([59af721](https://github.com/project-david-ai/projectdavid-orm/commit/59af721199849f06c89804df3b28d287e2aa47f6))
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
### Features
|
|
64
|
+
|
|
65
|
+
* add max_tokens to Assistant, fix temperature and top_p Integer to Float on Assistant and Run ([b990759](https://github.com/project-david-ai/projectdavid-orm/commit/b9907590bdf46c1d20f908faac7dcfe3ed70d404))
|
|
66
|
+
* add nullable endpoint field to BaseModel ([a902d5b](https://github.com/project-david-ai/projectdavid-orm/commit/a902d5ba45852cfbb8f6cd31ebcfed3850fc2354))
|
|
67
|
+
* add nullable endpoint field to BaseModel ([6f4aa94](https://github.com/project-david-ai/projectdavid-orm/commit/6f4aa949a7167cdce9311c8d9b03ecd16d373830))
|
|
68
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([edf837a](https://github.com/project-david-ai/projectdavid-orm/commit/edf837a7810ee744df011d81f56e5f761ba4135a))
|
|
69
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([f4165da](https://github.com/project-david-ai/projectdavid-orm/commit/f4165da7a1784b2e9e89b01384a2a9fb2d898b61))
|
|
70
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([ff4a08b](https://github.com/project-david-ai/projectdavid-orm/commit/ff4a08b6b92cb4355568cc299c2e6b51f248cd34))
|
|
71
|
+
* Phase 4 ([fb58012](https://github.com/project-david-ai/projectdavid-orm/commit/fb580125b975369c3a3a089f177c31e74561c72e))
|
|
72
|
+
* Phase 4 ([6c0c17c](https://github.com/project-david-ai/projectdavid-orm/commit/6c0c17cae3f4560b6dbed4621a4e6844a982d525))
|
|
73
|
+
* Phase 5a ([0ea00c5](https://github.com/project-david-ai/projectdavid-orm/commit/0ea00c5ccde65c4e9d191ed1239e0fe1d069c4d0))
|
|
74
|
+
* Phase 5a ([32cd97b](https://github.com/project-david-ai/projectdavid-orm/commit/32cd97b97e6fdff515318a61d902d3eb755447d8))
|
|
75
|
+
* trigger release — max_tokens, Float fix, remove BatfishSnapshot, Gold Standard CI ([1569cff](https://github.com/project-david-ai/projectdavid-orm/commit/1569cffcf18bb4fc44f897707ee2aa6e362edc72))
|
|
76
|
+
|
|
77
|
+
# [1.5.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.4.0...v1.5.0) (2026-03-28)
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
### Bug Fixes
|
|
81
|
+
|
|
82
|
+
* correct semantic-release script path to update_version.py ([59af721](https://github.com/project-david-ai/projectdavid-orm/commit/59af721199849f06c89804df3b28d287e2aa47f6))
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
### Features
|
|
86
|
+
|
|
87
|
+
* add max_tokens to Assistant, fix temperature and top_p Integer to Float on Assistant and Run ([b990759](https://github.com/project-david-ai/projectdavid-orm/commit/b9907590bdf46c1d20f908faac7dcfe3ed70d404))
|
|
88
|
+
* add nullable endpoint field to BaseModel ([a902d5b](https://github.com/project-david-ai/projectdavid-orm/commit/a902d5ba45852cfbb8f6cd31ebcfed3850fc2354))
|
|
89
|
+
* add nullable endpoint field to BaseModel ([6f4aa94](https://github.com/project-david-ai/projectdavid-orm/commit/6f4aa949a7167cdce9311c8d9b03ecd16d373830))
|
|
90
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([edf837a](https://github.com/project-david-ai/projectdavid-orm/commit/edf837a7810ee744df011d81f56e5f761ba4135a))
|
|
91
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([f4165da](https://github.com/project-david-ai/projectdavid-orm/commit/f4165da7a1784b2e9e89b01384a2a9fb2d898b61))
|
|
92
|
+
* max_tokens on Assistant, temperature/top_p Integer to Float, remove BatfishSnapshot, Gold Standard CI, PolyForm licence, COMMERCIAL.md, SECURITY.md, pre-commit, mypy ([ff4a08b](https://github.com/project-david-ai/projectdavid-orm/commit/ff4a08b6b92cb4355568cc299c2e6b51f248cd34))
|
|
93
|
+
* Phase 4 ([fb58012](https://github.com/project-david-ai/projectdavid-orm/commit/fb580125b975369c3a3a089f177c31e74561c72e))
|
|
94
|
+
* Phase 4 ([6c0c17c](https://github.com/project-david-ai/projectdavid-orm/commit/6c0c17cae3f4560b6dbed4621a4e6844a982d525))
|
|
95
|
+
* Phase 5a ([0ea00c5](https://github.com/project-david-ai/projectdavid-orm/commit/0ea00c5ccde65c4e9d191ed1239e0fe1d069c4d0))
|
|
96
|
+
* Phase 5a ([32cd97b](https://github.com/project-david-ai/projectdavid-orm/commit/32cd97b97e6fdff515318a61d902d3eb755447d8))
|
|
97
|
+
|
|
98
|
+
# [1.4.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.3.0...v1.4.0) (2026-03-23)
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
### Features
|
|
102
|
+
|
|
103
|
+
* Phase 5a ([7213c69](https://github.com/project-david-ai/projectdavid-orm/commit/7213c698beb56eddb5230bbcf609f250e6b20c5e))
|
|
104
|
+
|
|
105
|
+
# [1.3.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.2.0...v1.3.0) (2026-03-23)
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
### Features
|
|
109
|
+
|
|
110
|
+
* Phase 4 ([235a547](https://github.com/project-david-ai/projectdavid-orm/commit/235a54724dee1555c6e23febc9dec5d85dda5328))
|
|
111
|
+
|
|
112
|
+
# [1.2.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.12...v1.2.0) (2026-03-22)
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
### Features
|
|
116
|
+
|
|
117
|
+
* add internal_hostname to InferenceDeployment ([20aa5d2](https://github.com/project-david-ai/projectdavid-orm/commit/20aa5d23fae57e510b63bcb59b24ff0c1544be9b))
|
|
118
|
+
|
|
119
|
+
## [1.1.12](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.11...v1.1.12) (2026-03-21)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
### Bug Fixes
|
|
123
|
+
|
|
124
|
+
* clean up column formatting and relationships in models for improved readability and consistency ([fb5a873](https://github.com/project-david-ai/projectdavid-orm/commit/fb5a8736c6d3fa726c806e6bba7de06f00f234e4))
|
|
125
|
+
* clean up column formatting and relationships in models for improved readability and consistency ([fb5e05f](https://github.com/project-david-ai/projectdavid-orm/commit/fb5e05f5b0c94d05f1ce4b32ce46b61f8f33f96d))
|
|
126
|
+
* clean up column formatting and relationships in models for improved readability and consistency ([bca098e](https://github.com/project-david-ai/projectdavid-orm/commit/bca098e76a04011bff6a3d719100d76dbbc650b9))
|
|
127
|
+
* standardize timestamp columns, add soft-delete logic, and improve comments in models ([480baa1](https://github.com/project-david-ai/projectdavid-orm/commit/480baa17f1f34b575d3e6ba921ba6df9be3ac13b))
|
|
128
|
+
* standardize timestamp columns, add soft-delete logic, and improve comments in models ([568c93d](https://github.com/project-david-ai/projectdavid-orm/commit/568c93dc8523c159ebc0c67f5a6b909cc2fe6352))
|
|
129
|
+
|
|
130
|
+
## [1.1.11](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.10...v1.1.11) (2026-03-20)
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
### Bug Fixes
|
|
134
|
+
|
|
135
|
+
* add updated_at column to TrainingJobs table. ([18f38b7](https://github.com/project-david-ai/projectdavid-orm/commit/18f38b77802200038a3bd30bea01492f431d79f0))
|
|
136
|
+
* remove projectdavid_common dependency from pyproject.toml ([8550789](https://github.com/project-david-ai/projectdavid-orm/commit/85507896809a78ff44b0ca07258c3a727d7a2819))
|
|
137
|
+
* standardize timestamp columns, add soft-delete logic, and improve comments in models ([b9859c7](https://github.com/project-david-ai/projectdavid-orm/commit/b9859c74802dde63945d22485db9b426f447c971))
|
|
138
|
+
* update model imports and clean up column definitions in models ([5cc9fff](https://github.com/project-david-ai/projectdavid-orm/commit/5cc9fff84411a36e486742a6736934d41191ade6))
|
|
139
|
+
|
|
140
|
+
## [1.1.10](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.9...v1.1.10) (2026-03-20)
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
### Bug Fixes
|
|
144
|
+
|
|
145
|
+
* standardize timestamp columns, add soft-delete logic, and improve comments in models ([0aa5983](https://github.com/project-david-ai/projectdavid-orm/commit/0aa59836c1f37c5ee70a90cea269bfa2a2a8fb1f))
|
|
146
|
+
* standardize timestamp columns, add soft-delete logic, and improve comments in models ([d28dbc2](https://github.com/project-david-ai/projectdavid-orm/commit/d28dbc28a8413a67790f46627b0f35b2e828427c))
|
|
147
|
+
|
|
148
|
+
## [1.1.9](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.8...v1.1.9) (2026-03-19)
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
### Bug Fixes
|
|
152
|
+
|
|
153
|
+
* add updated_at column to TrainingJobs table. ([bf438d8](https://github.com/project-david-ai/projectdavid-orm/commit/bf438d8856af88a03d41dab3b7cf4d5bd56ce339))
|
|
154
|
+
* remove projectdavid_common dependency from pyproject.toml ([6537c42](https://github.com/project-david-ai/projectdavid-orm/commit/6537c42a1a7437c19a601fd154e655739c8f005b))
|
|
155
|
+
|
|
156
|
+
## [1.1.8](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.7...v1.1.8) (2026-03-19)
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
### Bug Fixes
|
|
160
|
+
|
|
161
|
+
* remove projectdavid_common dependency from pyproject.toml ([8f6faa1](https://github.com/project-david-ai/projectdavid-orm/commit/8f6faa1d494a864998e31aa073308c13c65889cf))
|
|
162
|
+
|
|
163
|
+
## [1.1.7](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.6...v1.1.7) (2026-03-19)
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
### Bug Fixes
|
|
167
|
+
|
|
168
|
+
* remove projectdavid_common dependency from pyproject.toml ([15fe2f7](https://github.com/project-david-ai/projectdavid-orm/commit/15fe2f79d6d2ac6ed5fdc59f71a8df891727aeb0))
|
|
169
|
+
|
|
170
|
+
## [1.1.6](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.5...v1.1.6) (2026-03-19)
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
### Bug Fixes
|
|
174
|
+
|
|
175
|
+
* remove redundant newline in README.md instructions ([81a423f](https://github.com/project-david-ai/projectdavid-orm/commit/81a423fb14dc4d46640b3a8d6b5748ddb794f720))
|
|
176
|
+
* upgrade projectdavid_common to v0.53.0 and remove redundant comments in models.py ([ac95695](https://github.com/project-david-ai/projectdavid-orm/commit/ac9569594868bbcbcefe5987195518482fad962b))
|
|
177
|
+
|
|
178
|
+
## [1.1.5](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.4...v1.1.5) (2026-03-18)
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
### Bug Fixes
|
|
182
|
+
|
|
183
|
+
* streamline test_tag_release workflow by removing `dev` branch logic and updating PyPI token configuration ([89a1be2](https://github.com/project-david-ai/projectdavid-orm/commit/89a1be2b410a1ce275f36e224fa407a4be4a1a26))
|
|
184
|
+
|
|
185
|
+
## [1.1.4](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.3...v1.1.4) (2026-03-18)
|
|
186
|
+
|
|
187
|
+
|
|
188
|
+
### Bug Fixes
|
|
189
|
+
|
|
190
|
+
* remove unused id-token permission from test_tag_release workflow ([c7225e7](https://github.com/project-david-ai/projectdavid-orm/commit/c7225e7432a26bf1fe32d429347ab79c286bced1))
|
|
191
|
+
|
|
192
|
+
## [1.1.3](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.2...v1.1.3) (2026-03-18)
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
### Bug Fixes
|
|
196
|
+
|
|
197
|
+
* remove unused id-token permission from test_tag_release workflow ([cd79ff9](https://github.com/project-david-ai/projectdavid-orm/commit/cd79ff9465b532031c64a7add2a9785a8bfef567))
|
|
198
|
+
|
|
199
|
+
## [1.1.2](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.1...v1.1.2) (2026-03-18)
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
### Bug Fixes
|
|
203
|
+
|
|
204
|
+
* remove unused id-token permission from test_tag_release workflow ([a34000d](https://github.com/project-david-ai/projectdavid-orm/commit/a34000da052f404db798da691ab2c5fa5815eeeb))
|
|
205
|
+
|
|
206
|
+
## [1.1.1](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.0...v1.1.1) (2026-03-18)
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
### Bug Fixes
|
|
210
|
+
|
|
211
|
+
* update PyPI repository URLs and add attestations flag in test_tag_release workflow ([a2dca7e](https://github.com/project-david-ai/projectdavid-orm/commit/a2dca7e521732302f8d0acb86390f3f061aae07e))
|
|
212
|
+
|
|
213
|
+
# [1.1.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.0.0...v1.1.0) (2026-03-18)
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
### Bug Fixes
|
|
217
|
+
|
|
218
|
+
* remove redundant newline in README.md instructions ([dea758d](https://github.com/project-david-ai/projectdavid-orm/commit/dea758d4d80eb0e6f2b75e80e712652779afbe63))
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
### Features
|
|
222
|
+
|
|
223
|
+
* add version.py for managing application versioning ([6ec6e42](https://github.com/project-david-ai/projectdavid-orm/commit/6ec6e425eba9e790e2a4a4c24aea5fa60c1f1057))
|
|
224
|
+
|
|
225
|
+
# 1.0.0 (2026-03-18)
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
### Bug Fixes
|
|
229
|
+
|
|
230
|
+
* codebase for improved readability by consistently formatting SQLAlchemy column definitions and relationships. Adjust test log messages for clarity. ([e302b55](https://github.com/project-david-ai/projectdavid-orm/commit/e302b5580d35537db028a4cbea23d2d7f833cffc))
|
|
231
|
+
|
|
232
|
+
|
|
233
|
+
### Features
|
|
234
|
+
|
|
235
|
+
* Set up release automation and project metadata files, including .releaserc.json, scripts, and editor configurations. ([4a747bb](https://github.com/project-david-ai/projectdavid-orm/commit/4a747bbf133f19c31629587955dd009545e241b5))
|
|
236
|
+
|
|
237
|
+
# Changelog
|
|
238
|
+
|
|
239
|
+
All notable changes to this project will be documented in this file.
|
|
240
|
+
|
|
241
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
242
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
243
|
+
|
|
244
|
+
---
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: projectdavid-orm
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6.1
|
|
4
4
|
Summary: Shared SQLAlchemy ORM models for ProjectDavid services
|
|
5
|
-
Author-email: "Francis N." <
|
|
6
|
-
License:
|
|
5
|
+
Author-email: "Francis N." <engineering@projectdavid.co.uk>
|
|
6
|
+
License: PolyForm Noncommercial License 1.0.0
|
|
7
7
|
Project-URL: Homepage, https://github.com/project-david-ai/projectdavid-orm
|
|
8
|
+
Project-URL: Documentation, https://docs.projectdavid.co.uk/docs
|
|
9
|
+
Project-URL: Changelog, https://github.com/project-david-ai/projectdavid-orm/blob/main/CHANGELOG.md
|
|
8
10
|
Keywords: orm,sqlalchemy,models,projectdavid,internal
|
|
9
11
|
Requires-Python: >=3.10
|
|
10
12
|
Description-Content-Type: text/markdown
|
|
@@ -15,8 +17,11 @@ Requires-Dist: pydantic>=2.0
|
|
|
15
17
|
Requires-Dist: python-dotenv
|
|
16
18
|
Provides-Extra: dev
|
|
17
19
|
Requires-Dist: pytest; extra == "dev"
|
|
18
|
-
Requires-Dist: black; extra == "dev"
|
|
19
|
-
Requires-Dist: isort; extra == "dev"
|
|
20
|
+
Requires-Dist: black==24.1.1; extra == "dev"
|
|
21
|
+
Requires-Dist: isort==5.13.2; extra == "dev"
|
|
22
|
+
Requires-Dist: bandit==1.7.7; extra == "dev"
|
|
23
|
+
Requires-Dist: mypy>=1.0; extra == "dev"
|
|
24
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
20
25
|
Dynamic: license-file
|
|
21
26
|
|
|
22
27
|
# projectdavid-orm
|
|
@@ -4,13 +4,13 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "projectdavid-orm"
|
|
7
|
-
version = "1.
|
|
7
|
+
version = "1.6.1"
|
|
8
8
|
description = "Shared SQLAlchemy ORM models for ProjectDavid services"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
authors = [
|
|
11
|
-
{ name = "Francis N.", email = "
|
|
11
|
+
{ name = "Francis N.", email = "engineering@projectdavid.co.uk" }
|
|
12
12
|
]
|
|
13
|
-
license = { text = "
|
|
13
|
+
license = { text = "PolyForm Noncommercial License 1.0.0" }
|
|
14
14
|
keywords = ["orm", "sqlalchemy", "models", "projectdavid", "internal"]
|
|
15
15
|
requires-python = ">=3.10"
|
|
16
16
|
|
|
@@ -19,18 +19,22 @@ dependencies = [
|
|
|
19
19
|
"pymysql",
|
|
20
20
|
"pydantic>=2.0",
|
|
21
21
|
"python-dotenv",
|
|
22
|
-
|
|
23
22
|
]
|
|
24
23
|
|
|
25
24
|
[project.optional-dependencies]
|
|
26
25
|
dev = [
|
|
27
26
|
"pytest",
|
|
28
|
-
"black",
|
|
29
|
-
"isort"
|
|
27
|
+
"black==24.1.1",
|
|
28
|
+
"isort==5.13.2",
|
|
29
|
+
"bandit==1.7.7",
|
|
30
|
+
"mypy>=1.0",
|
|
31
|
+
"pre-commit",
|
|
30
32
|
]
|
|
31
33
|
|
|
32
34
|
[project.urls]
|
|
33
35
|
Homepage = "https://github.com/project-david-ai/projectdavid-orm"
|
|
36
|
+
Documentation = "https://docs.projectdavid.co.uk/docs"
|
|
37
|
+
Changelog = "https://github.com/project-david-ai/projectdavid-orm/blob/main/CHANGELOG.md"
|
|
34
38
|
|
|
35
39
|
[tool.setuptools]
|
|
36
40
|
package-dir = { "" = "src" }
|
|
@@ -40,14 +44,21 @@ where = ["src"]
|
|
|
40
44
|
include = ["projectdavid_orm", "projectdavid_orm.*"]
|
|
41
45
|
|
|
42
46
|
[tool.black]
|
|
43
|
-
line-length =
|
|
44
|
-
target-version = ["py310"]
|
|
45
|
-
skip-string-normalization = true
|
|
47
|
+
line-length = 88
|
|
48
|
+
target-version = ["py310", "py311", "py312"]
|
|
46
49
|
|
|
47
50
|
[tool.flake8]
|
|
48
|
-
max-line-length =
|
|
51
|
+
max-line-length = 88
|
|
49
52
|
extend-ignore = ["E203"]
|
|
50
53
|
exclude = [".venv", ".git", "__pycache__", "build", "dist"]
|
|
51
54
|
|
|
52
55
|
[tool.isort]
|
|
53
|
-
profile = "black"
|
|
56
|
+
profile = "black"
|
|
57
|
+
line_length = 88
|
|
58
|
+
|
|
59
|
+
[tool.mypy]
|
|
60
|
+
python_version = "3.11"
|
|
61
|
+
warn_return_any = false
|
|
62
|
+
warn_unused_configs = true
|
|
63
|
+
ignore_missing_imports = true
|
|
64
|
+
exclude = ["tests/"]
|
|
@@ -17,8 +17,8 @@ Requires-Dist: pytest; extra == "dev"
|
|
|
17
17
|
[](https://github.com/frankie336/entitites_sdk/actions/workflows/test_tag_release.yml)
|
|
18
18
|
|
|
19
19
|
The **Projectdavid Common** SDK is a shared library that serves as a central resource for multiple components within the same
|
|
20
|
-
project. It consolidates common functionality across disparate parts of the project, reducing duplication and improving
|
|
21
|
-
maintainability. By providing a unified interface, Entities Common simplifies interactions with the
|
|
20
|
+
project. It consolidates common functionality across disparate parts of the project, reducing duplication and improving
|
|
21
|
+
maintainability. By providing a unified interface, Entities Common simplifies interactions with the
|
|
22
22
|
and future related products.
|
|
23
23
|
|
|
24
24
|
[Entities API](https://github.com/frankie336/entities_api), the [projectdavid SDK](https://github.com/frankie336/entitites_sdk) ,
|
{projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_common.egg-info/SOURCES.txt
RENAMED
|
@@ -29,4 +29,4 @@ src/projectdavid_common/schemas/vectors.py
|
|
|
29
29
|
src/projectdavid_common/utilities/__init__.py
|
|
30
30
|
src/projectdavid_common/utilities/identifier_service.py
|
|
31
31
|
src/projectdavid_common/utilities/logging_service.py
|
|
32
|
-
tests/test_vector_store_models.py
|
|
32
|
+
tests/test_vector_store_models.py
|
{projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm/projectdavid_orm/models.py
RENAMED
|
@@ -8,13 +8,7 @@ from projectdavid_common import ValidationInterface
|
|
|
8
8
|
from projectdavid_common.projectdavid_orm.base import Base
|
|
9
9
|
from projectdavid_common.schemas.enums import StatusEnum
|
|
10
10
|
from projectdavid_common.utilities.logging_service import LoggingUtility
|
|
11
|
-
from sqlalchemy import
|
|
12
|
-
JSON,
|
|
13
|
-
BigInteger,
|
|
14
|
-
Boolean,
|
|
15
|
-
Column,
|
|
16
|
-
DateTime,
|
|
17
|
-
)
|
|
11
|
+
from sqlalchemy import JSON, BigInteger, Boolean, Column, DateTime
|
|
18
12
|
from sqlalchemy import Enum as SAEnum
|
|
19
13
|
from sqlalchemy import (
|
|
20
14
|
Float,
|
|
@@ -116,7 +110,9 @@ class User(Base):
|
|
|
116
110
|
comment="Internal unique identifier for the user (e.g., user_...)",
|
|
117
111
|
)
|
|
118
112
|
created_at = Column(DateTime, default=datetime.utcnow, nullable=False)
|
|
119
|
-
updated_at = Column(
|
|
113
|
+
updated_at = Column(
|
|
114
|
+
DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False
|
|
115
|
+
)
|
|
120
116
|
is_admin = Column(
|
|
121
117
|
Boolean,
|
|
122
118
|
default=False,
|
|
@@ -141,7 +137,9 @@ class User(Base):
|
|
|
141
137
|
full_name = Column(String(255), nullable=True, comment="User's full display name")
|
|
142
138
|
given_name = Column(String(128), nullable=True, comment="First name")
|
|
143
139
|
family_name = Column(String(128), nullable=True, comment="Last name")
|
|
144
|
-
picture_url = Column(
|
|
140
|
+
picture_url = Column(
|
|
141
|
+
Text, nullable=True, comment="URL to the user's profile picture"
|
|
142
|
+
)
|
|
145
143
|
|
|
146
144
|
oauth_provider = Column(
|
|
147
145
|
String(50),
|
|
@@ -175,13 +173,17 @@ class User(Base):
|
|
|
175
173
|
"Sandbox", back_populates="user", cascade="all, delete-orphan", lazy="select"
|
|
176
174
|
)
|
|
177
175
|
vector_stores = relationship("VectorStore", back_populates="user", lazy="select")
|
|
178
|
-
files = relationship(
|
|
176
|
+
files = relationship(
|
|
177
|
+
"File", back_populates="user", cascade="all, delete-orphan", lazy="select"
|
|
178
|
+
)
|
|
179
179
|
runs = relationship("Run", back_populates="user", lazy="select")
|
|
180
180
|
|
|
181
181
|
audit_logs = relationship("AuditLog", back_populates="user", lazy="dynamic")
|
|
182
182
|
|
|
183
183
|
__table_args__ = (
|
|
184
|
-
UniqueConstraint(
|
|
184
|
+
UniqueConstraint(
|
|
185
|
+
"oauth_provider", "provider_user_id", name="uq_user_oauth_provider_id"
|
|
186
|
+
),
|
|
185
187
|
Index("idx_user_email", "email"),
|
|
186
188
|
Index("idx_user_is_admin", "is_admin"),
|
|
187
189
|
)
|
|
@@ -203,8 +205,6 @@ class AuditLog(Base):
|
|
|
203
205
|
|
|
204
206
|
id = Column(BigInteger, primary_key=True, index=True, autoincrement=True)
|
|
205
207
|
|
|
206
|
-
# Who performed the action.
|
|
207
|
-
# Nullable: SET NULL when the user is erased (record survives, identity is anonymised).
|
|
208
208
|
user_id = Column(
|
|
209
209
|
String(64),
|
|
210
210
|
ForeignKey("users.id", ondelete="SET NULL"),
|
|
@@ -212,7 +212,6 @@ class AuditLog(Base):
|
|
|
212
212
|
index=True,
|
|
213
213
|
)
|
|
214
214
|
|
|
215
|
-
# What was done
|
|
216
215
|
action = Column(
|
|
217
216
|
String(32),
|
|
218
217
|
nullable=False,
|
|
@@ -220,22 +219,18 @@ class AuditLog(Base):
|
|
|
220
219
|
comment="e.g. CREATE, UPDATE, DELETE, HARD_DELETE, ERASE",
|
|
221
220
|
)
|
|
222
221
|
|
|
223
|
-
# What entity was affected
|
|
224
222
|
entity_type = Column(
|
|
225
223
|
String(64), nullable=False, index=True, comment="e.g. Assistant, User, Thread"
|
|
226
224
|
)
|
|
227
225
|
entity_id = Column(String(64), nullable=False, index=True)
|
|
228
226
|
|
|
229
|
-
# Context
|
|
230
227
|
timestamp = Column(DateTime, default=datetime.utcnow, nullable=False, index=True)
|
|
231
228
|
ip_address = Column(String(45), nullable=True)
|
|
232
229
|
|
|
233
|
-
# Detailed Payload (snapshot of changes)
|
|
234
230
|
details = Column(
|
|
235
231
|
JSON, nullable=True, comment="Stores before/after state or reasoning for action"
|
|
236
232
|
)
|
|
237
233
|
|
|
238
|
-
# Relationship
|
|
239
234
|
user = relationship("User", back_populates="audit_logs")
|
|
240
235
|
|
|
241
236
|
|
|
@@ -246,10 +241,10 @@ class Thread(Base):
|
|
|
246
241
|
meta_data = Column(JSON, nullable=False, default={})
|
|
247
242
|
object = Column(String(64), nullable=False)
|
|
248
243
|
tool_resources = Column(JSON, nullable=False, default={})
|
|
249
|
-
participants = relationship(
|
|
244
|
+
participants = relationship(
|
|
245
|
+
"User", secondary=thread_participants, back_populates="threads"
|
|
246
|
+
)
|
|
250
247
|
|
|
251
|
-
# SET NULL on user deletion — thread record is preserved, ownership is cleared.
|
|
252
|
-
# Application-level erase_user() handles physical cleanup of thread content.
|
|
253
248
|
owner_id = Column(
|
|
254
249
|
String(64),
|
|
255
250
|
ForeignKey("users.id", ondelete="SET NULL"),
|
|
@@ -267,7 +262,6 @@ class Message(Base):
|
|
|
267
262
|
attachments = Column(JSON, default=[])
|
|
268
263
|
completed_at = Column(Integer, nullable=True)
|
|
269
264
|
|
|
270
|
-
# --- The "Brain" Output ---
|
|
271
265
|
content = Column(Text(length=4294967295), nullable=False)
|
|
272
266
|
reasoning = Column(
|
|
273
267
|
Text(length=4294967295),
|
|
@@ -275,7 +269,6 @@ class Message(Base):
|
|
|
275
269
|
comment="Stores the internal 'thinking' or reasoning tokens from the model.",
|
|
276
270
|
)
|
|
277
271
|
|
|
278
|
-
# --- Native Tool Metadata (Critical for Stage 2/Level 3) ---
|
|
279
272
|
tool_calls = Column(
|
|
280
273
|
JSON,
|
|
281
274
|
nullable=True,
|
|
@@ -295,15 +288,10 @@ class Message(Base):
|
|
|
295
288
|
role = Column(String(32), nullable=False)
|
|
296
289
|
run_id = Column(String(64), nullable=True)
|
|
297
290
|
|
|
298
|
-
# Kept as simple String, no longer linked to deleted Tool table
|
|
299
291
|
tool_id = Column(String(64), nullable=True)
|
|
300
292
|
|
|
301
293
|
status = Column(String(32), nullable=True)
|
|
302
294
|
|
|
303
|
-
# NOTE: thread_id is intentionally stored as a plain string with no FK constraint.
|
|
304
|
-
# Orphaned messages (after thread deletion) are handled by:
|
|
305
|
-
# a) application-level erase_user() during right-to-erasure
|
|
306
|
-
# b) purge_orphaned_threads daemon (periodic background cleanup)
|
|
307
295
|
thread_id = Column(String(64), nullable=False)
|
|
308
296
|
sender_id = Column(String(64), nullable=True)
|
|
309
297
|
|
|
@@ -311,7 +299,6 @@ class Message(Base):
|
|
|
311
299
|
class Run(Base):
|
|
312
300
|
__tablename__ = "runs"
|
|
313
301
|
|
|
314
|
-
# CASCADE: runs are deleted when their owning user is erased.
|
|
315
302
|
user_id = Column(
|
|
316
303
|
String(64),
|
|
317
304
|
ForeignKey("users.id", ondelete="CASCADE"),
|
|
@@ -323,7 +310,6 @@ class Run(Base):
|
|
|
323
310
|
id = Column(String(64), primary_key=True)
|
|
324
311
|
assistant_id = Column(String(64), nullable=False)
|
|
325
312
|
|
|
326
|
-
# timestamps as epoch seconds (ints)
|
|
327
313
|
cancelled_at = Column(Integer, nullable=True)
|
|
328
314
|
completed_at = Column(Integer, nullable=True)
|
|
329
315
|
created_at = Column(Integer, default=lambda: int(time.time()))
|
|
@@ -348,13 +334,11 @@ class Run(Base):
|
|
|
348
334
|
|
|
349
335
|
status = Column(SAEnum(validation.StatusEnum), nullable=False)
|
|
350
336
|
|
|
351
|
-
# NOTE: thread_id stored as plain string — no FK constraint (mirrors Message.thread_id).
|
|
352
337
|
thread_id = Column(String(64), nullable=False)
|
|
353
338
|
tool_choice = Column(String(64), nullable=True)
|
|
354
339
|
|
|
355
340
|
tools = Column(JSON, nullable=True)
|
|
356
341
|
|
|
357
|
-
# --- Agentic Behavior State (Level 3) ---
|
|
358
342
|
current_turn = Column(
|
|
359
343
|
Integer,
|
|
360
344
|
default=0,
|
|
@@ -382,8 +366,11 @@ class Run(Base):
|
|
|
382
366
|
)
|
|
383
367
|
|
|
384
368
|
usage = Column(JSON, nullable=True)
|
|
385
|
-
|
|
386
|
-
|
|
369
|
+
|
|
370
|
+
# Fixed: Float not Integer — supports values like 0.7, 0.95
|
|
371
|
+
temperature = Column(Float, nullable=True)
|
|
372
|
+
top_p = Column(Float, nullable=True)
|
|
373
|
+
|
|
387
374
|
tool_resources = Column(JSON, nullable=True)
|
|
388
375
|
|
|
389
376
|
actions = relationship("Action", back_populates="run")
|
|
@@ -403,19 +390,28 @@ class Assistant(Base):
|
|
|
403
390
|
|
|
404
391
|
tool_configs = Column(JSON)
|
|
405
392
|
meta_data = Column(JSON)
|
|
406
|
-
|
|
407
|
-
|
|
393
|
+
|
|
394
|
+
# Fixed: Float not Integer — supports values like 0.7, 0.95
|
|
395
|
+
top_p = Column(Float, nullable=True)
|
|
396
|
+
temperature = Column(Float, nullable=True)
|
|
397
|
+
|
|
408
398
|
response_format = Column(String(64))
|
|
409
399
|
|
|
400
|
+
# Added: max_tokens — bubbles up to inference at runtime
|
|
401
|
+
max_tokens = Column(
|
|
402
|
+
Integer,
|
|
403
|
+
nullable=True,
|
|
404
|
+
default=2048,
|
|
405
|
+
server_default="2048",
|
|
406
|
+
comment="Maximum tokens to generate per inference pass. Overrides provider defaults at runtime.",
|
|
407
|
+
)
|
|
408
|
+
|
|
410
409
|
tool_resources = Column(
|
|
411
410
|
JSON,
|
|
412
411
|
nullable=True,
|
|
413
412
|
comment='Resource map keyed by tool type, e.g. {"file_search": {"vector_store_ids": ["vs_123","vs_456"]}}',
|
|
414
413
|
)
|
|
415
414
|
|
|
416
|
-
# SET NULL on user deletion — assistant record is preserved (may be shared with
|
|
417
|
-
# other users via user_assistants). Application-level erase_user() decides
|
|
418
|
-
# whether to soft-delete exclusively-owned assistants.
|
|
419
415
|
owner_id = Column(
|
|
420
416
|
String(64),
|
|
421
417
|
ForeignKey("users.id", ondelete="SET NULL"),
|
|
@@ -499,14 +495,12 @@ class Action(Base):
|
|
|
499
495
|
|
|
500
496
|
id = Column(String(64), primary_key=True, index=True)
|
|
501
497
|
|
|
502
|
-
# CASCADE: actions are deleted when their parent run is deleted.
|
|
503
498
|
run_id = Column(
|
|
504
499
|
String(64),
|
|
505
500
|
ForeignKey("runs.id", ondelete="CASCADE"),
|
|
506
501
|
nullable=True,
|
|
507
502
|
)
|
|
508
503
|
|
|
509
|
-
# --- Agentic Tracking (Level 3) ---
|
|
510
504
|
tool_call_id = Column(
|
|
511
505
|
String(64),
|
|
512
506
|
nullable=True,
|
|
@@ -548,7 +542,6 @@ class Action(Base):
|
|
|
548
542
|
function_args = Column(JSON, nullable=True)
|
|
549
543
|
result = Column(JSON, nullable=True)
|
|
550
544
|
|
|
551
|
-
# --- Relationships ---
|
|
552
545
|
run = relationship("Run", back_populates="actions")
|
|
553
546
|
|
|
554
547
|
@staticmethod
|
|
@@ -560,7 +553,6 @@ class Sandbox(Base):
|
|
|
560
553
|
__tablename__ = "sandboxes"
|
|
561
554
|
id = Column(String(64), primary_key=True, index=True)
|
|
562
555
|
|
|
563
|
-
# CASCADE: sandboxes are deleted when their owning user is erased.
|
|
564
556
|
user_id = Column(
|
|
565
557
|
String(64),
|
|
566
558
|
ForeignKey("users.id", ondelete="CASCADE"),
|
|
@@ -584,7 +576,6 @@ class File(Base):
|
|
|
584
576
|
purpose = Column(String(64), nullable=False)
|
|
585
577
|
mime_type = Column(String(255))
|
|
586
578
|
|
|
587
|
-
# ── GDPR / Lifecycle ────────────────────────────────────────────
|
|
588
579
|
deleted_at = Column(
|
|
589
580
|
Integer,
|
|
590
581
|
nullable=True,
|
|
@@ -608,7 +599,6 @@ class FileStorage(Base):
|
|
|
608
599
|
__tablename__ = "file_storage"
|
|
609
600
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
|
610
601
|
|
|
611
|
-
# CASCADE: storage records are deleted when their parent file is deleted.
|
|
612
602
|
file_id = Column(
|
|
613
603
|
String(64),
|
|
614
604
|
ForeignKey("files.id", ondelete="CASCADE"),
|
|
@@ -640,69 +630,6 @@ class FileStorage(Base):
|
|
|
640
630
|
__table_args__ = (Index("idx_file_storage_file_id", "file_id"),)
|
|
641
631
|
|
|
642
632
|
|
|
643
|
-
class BatfishSnapshot(Base):
|
|
644
|
-
__tablename__ = "batfish_snapshots"
|
|
645
|
-
|
|
646
|
-
id = Column(
|
|
647
|
-
String(64),
|
|
648
|
-
primary_key=True,
|
|
649
|
-
index=True,
|
|
650
|
-
comment="Opaque snapshot ID returned to caller e.g. snap_abc123",
|
|
651
|
-
)
|
|
652
|
-
|
|
653
|
-
snapshot_name = Column(
|
|
654
|
-
String(128),
|
|
655
|
-
nullable=False,
|
|
656
|
-
comment="Caller-supplied label e.g. 'incident_001'",
|
|
657
|
-
)
|
|
658
|
-
|
|
659
|
-
snapshot_key = Column(
|
|
660
|
-
String(256),
|
|
661
|
-
nullable=False,
|
|
662
|
-
unique=True,
|
|
663
|
-
index=True,
|
|
664
|
-
comment="Namespaced isolation key: {user_id}_{id}",
|
|
665
|
-
)
|
|
666
|
-
|
|
667
|
-
# CASCADE: snapshots are deleted when their owning user is erased.
|
|
668
|
-
user_id = Column(
|
|
669
|
-
String(64),
|
|
670
|
-
ForeignKey("users.id", ondelete="CASCADE"),
|
|
671
|
-
nullable=False,
|
|
672
|
-
index=True,
|
|
673
|
-
)
|
|
674
|
-
|
|
675
|
-
configs_root = Column(String(512), nullable=True)
|
|
676
|
-
|
|
677
|
-
device_count = Column(Integer, default=0, nullable=False)
|
|
678
|
-
devices = Column(
|
|
679
|
-
JSON,
|
|
680
|
-
default=list,
|
|
681
|
-
nullable=False,
|
|
682
|
-
comment="List of hostnames ingested into this snapshot",
|
|
683
|
-
)
|
|
684
|
-
|
|
685
|
-
status = Column(
|
|
686
|
-
SAEnum(StatusEnum),
|
|
687
|
-
nullable=False,
|
|
688
|
-
default=StatusEnum.pending,
|
|
689
|
-
)
|
|
690
|
-
|
|
691
|
-
error_message = Column(Text, nullable=True)
|
|
692
|
-
|
|
693
|
-
created_at = Column(BigInteger, default=lambda: int(time.time()), nullable=False)
|
|
694
|
-
updated_at = Column(BigInteger, default=lambda: int(time.time()), nullable=False)
|
|
695
|
-
last_ingested_at = Column(BigInteger, nullable=True)
|
|
696
|
-
|
|
697
|
-
user = relationship("User", lazy="select")
|
|
698
|
-
|
|
699
|
-
__table_args__ = (
|
|
700
|
-
UniqueConstraint("user_id", "snapshot_name", name="uq_batfish_user_snapshot_name"),
|
|
701
|
-
Index("idx_batfish_user_id", "user_id"),
|
|
702
|
-
Index("idx_batfish_status", "status"),
|
|
703
|
-
)
|
|
704
|
-
|
|
705
|
-
|
|
706
633
|
class VectorStore(Base):
|
|
707
634
|
__tablename__ = "vector_stores"
|
|
708
635
|
id = Column(String(64), primary_key=True, index=True)
|
|
@@ -722,7 +649,6 @@ class VectorStore(Base):
|
|
|
722
649
|
config = Column(JSON, nullable=True)
|
|
723
650
|
file_count = Column(Integer, default=0, nullable=False)
|
|
724
651
|
|
|
725
|
-
# ── GDPR / Lifecycle ────────────────────────────────────────────────────
|
|
726
652
|
deleted_at = Column(
|
|
727
653
|
Integer,
|
|
728
654
|
nullable=True,
|
|
@@ -744,7 +670,6 @@ class VectorStoreFile(Base):
|
|
|
744
670
|
__tablename__ = "vector_store_files"
|
|
745
671
|
id = Column(String(64), primary_key=True, index=True)
|
|
746
672
|
|
|
747
|
-
# CASCADE: vector store files are deleted when their parent store is deleted.
|
|
748
673
|
vector_store_id = Column(
|
|
749
674
|
String(64),
|
|
750
675
|
ForeignKey("vector_stores.id", ondelete="CASCADE"),
|
|
@@ -766,7 +691,10 @@ class Dataset(Base):
|
|
|
766
691
|
__tablename__ = "datasets"
|
|
767
692
|
id = Column(String(64), primary_key=True, index=True)
|
|
768
693
|
user_id = Column(
|
|
769
|
-
String(64),
|
|
694
|
+
String(64),
|
|
695
|
+
ForeignKey("users.id", ondelete="CASCADE"),
|
|
696
|
+
nullable=False,
|
|
697
|
+
index=True,
|
|
770
698
|
)
|
|
771
699
|
name = Column(String(128), nullable=False)
|
|
772
700
|
description = Column(Text, nullable=True)
|
|
@@ -787,17 +715,25 @@ class Dataset(Base):
|
|
|
787
715
|
)
|
|
788
716
|
deleted_at = Column(Integer, nullable=True, default=None, index=True)
|
|
789
717
|
|
|
790
|
-
training_jobs = relationship(
|
|
718
|
+
training_jobs = relationship(
|
|
719
|
+
"TrainingJob", back_populates="dataset", lazy="dynamic"
|
|
720
|
+
)
|
|
791
721
|
|
|
792
722
|
|
|
793
723
|
class TrainingJob(Base):
|
|
794
724
|
__tablename__ = "training_jobs"
|
|
795
725
|
id = Column(String(64), primary_key=True, index=True)
|
|
796
726
|
user_id = Column(
|
|
797
|
-
String(64),
|
|
727
|
+
String(64),
|
|
728
|
+
ForeignKey("users.id", ondelete="CASCADE"),
|
|
729
|
+
nullable=False,
|
|
730
|
+
index=True,
|
|
798
731
|
)
|
|
799
732
|
dataset_id = Column(
|
|
800
|
-
String(64),
|
|
733
|
+
String(64),
|
|
734
|
+
ForeignKey("datasets.id", ondelete="SET NULL"),
|
|
735
|
+
nullable=True,
|
|
736
|
+
index=True,
|
|
801
737
|
)
|
|
802
738
|
base_model = Column(String(256), nullable=False)
|
|
803
739
|
framework = Column(String(32), nullable=False, default="axolotl")
|
|
@@ -820,9 +756,9 @@ class TrainingJob(Base):
|
|
|
820
756
|
metrics = Column(JSON, nullable=True)
|
|
821
757
|
output_path = Column(String(512), nullable=True)
|
|
822
758
|
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
759
|
+
node_id = Column(
|
|
760
|
+
String(64), ForeignKey("compute_nodes.id", ondelete="SET NULL"), nullable=True
|
|
761
|
+
)
|
|
826
762
|
|
|
827
763
|
dataset = relationship("Dataset", back_populates="training_jobs", lazy="select")
|
|
828
764
|
fine_tuned_model = relationship(
|
|
@@ -840,10 +776,16 @@ class FineTunedModel(Base):
|
|
|
840
776
|
__tablename__ = "fine_tuned_models"
|
|
841
777
|
id = Column(String(64), primary_key=True, index=True)
|
|
842
778
|
user_id = Column(
|
|
843
|
-
String(64),
|
|
779
|
+
String(64),
|
|
780
|
+
ForeignKey("users.id", ondelete="CASCADE"),
|
|
781
|
+
nullable=False,
|
|
782
|
+
index=True,
|
|
844
783
|
)
|
|
845
784
|
training_job_id = Column(
|
|
846
|
-
String(64),
|
|
785
|
+
String(64),
|
|
786
|
+
ForeignKey("training_jobs.id", ondelete="SET NULL"),
|
|
787
|
+
nullable=True,
|
|
788
|
+
index=True,
|
|
847
789
|
)
|
|
848
790
|
name = Column(String(128), nullable=False)
|
|
849
791
|
description = Column(Text, nullable=True)
|
|
@@ -863,11 +805,13 @@ class FineTunedModel(Base):
|
|
|
863
805
|
)
|
|
864
806
|
deleted_at = Column(Integer, nullable=True, default=None, index=True)
|
|
865
807
|
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
808
|
+
node_id = Column(
|
|
809
|
+
String(64), ForeignKey("compute_nodes.id", ondelete="SET NULL"), nullable=True
|
|
810
|
+
)
|
|
869
811
|
|
|
870
|
-
training_job = relationship(
|
|
812
|
+
training_job = relationship(
|
|
813
|
+
"TrainingJob", back_populates="fine_tuned_model", lazy="select"
|
|
814
|
+
)
|
|
871
815
|
node = relationship("ComputeNode", back_populates="active_models")
|
|
872
816
|
|
|
873
817
|
|
|
@@ -894,7 +838,9 @@ class ComputeNode(Base):
|
|
|
894
838
|
status = Column(SAEnum(StatusEnum), default=StatusEnum.active)
|
|
895
839
|
last_heartbeat = Column(BigInteger, default=lambda: int(time.time()))
|
|
896
840
|
|
|
897
|
-
allocations = relationship(
|
|
841
|
+
allocations = relationship(
|
|
842
|
+
"GPUAllocation", back_populates="node", cascade="all, delete-orphan"
|
|
843
|
+
)
|
|
898
844
|
training_jobs = relationship("TrainingJob", back_populates="node")
|
|
899
845
|
active_models = relationship("FineTunedModel", back_populates="node")
|
|
900
846
|
|
|
@@ -909,9 +855,13 @@ class GPUAllocation(Base):
|
|
|
909
855
|
__tablename__ = "gpu_allocations"
|
|
910
856
|
id = Column(Integer, primary_key=True, autoincrement=True)
|
|
911
857
|
node_id = Column(String(64), ForeignKey("compute_nodes.id", ondelete="CASCADE"))
|
|
912
|
-
job_id = Column(
|
|
858
|
+
job_id = Column(
|
|
859
|
+
String(64), ForeignKey("training_jobs.id", ondelete="CASCADE"), nullable=True
|
|
860
|
+
)
|
|
913
861
|
model_id = Column(
|
|
914
|
-
String(64),
|
|
862
|
+
String(64),
|
|
863
|
+
ForeignKey("fine_tuned_models.id", ondelete="CASCADE"),
|
|
864
|
+
nullable=True,
|
|
915
865
|
)
|
|
916
866
|
vram_reserved_gb = Column(Float, nullable=False)
|
|
917
867
|
created_at = Column(BigInteger, default=lambda: int(time.time()))
|
|
@@ -941,20 +891,18 @@ class InferenceDeployment(Base):
|
|
|
941
891
|
__tablename__ = "inference_deployments"
|
|
942
892
|
id = Column(String(64), primary_key=True, index=True)
|
|
943
893
|
|
|
944
|
-
# Phase 4: plain string storing the Ray node ID (hex). No FK constraint.
|
|
945
894
|
node_id = Column(String(128), nullable=True)
|
|
946
895
|
|
|
947
896
|
internal_hostname = Column(String(128), nullable=True)
|
|
948
897
|
base_model_id = Column(String(128), ForeignKey("base_models.id"))
|
|
949
|
-
fine_tuned_model_id = Column(
|
|
898
|
+
fine_tuned_model_id = Column(
|
|
899
|
+
String(64), ForeignKey("fine_tuned_models.id"), nullable=True
|
|
900
|
+
)
|
|
950
901
|
port = Column(Integer, default=8000)
|
|
951
902
|
status = Column(SAEnum(StatusEnum), default=StatusEnum.active)
|
|
952
903
|
current_throughput = Column(Float, default=0.0)
|
|
953
904
|
last_seen = Column(BigInteger, default=lambda: int(time.time()))
|
|
954
905
|
|
|
955
|
-
# Inference sharding: number of GPUs this deployment spans.
|
|
956
|
-
# 1 = single GPU (default, backward compatible).
|
|
957
|
-
# N > 1 = tensor parallel across N GPUs via vLLM --tensor-parallel-size.
|
|
958
906
|
tensor_parallel_size = Column(Integer, nullable=False, default=1)
|
|
959
907
|
|
|
960
908
|
base_model = relationship("BaseModel")
|
|
File without changes
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: projectdavid-orm
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6.1
|
|
4
4
|
Summary: Shared SQLAlchemy ORM models for ProjectDavid services
|
|
5
|
-
Author-email: "Francis N." <
|
|
6
|
-
License:
|
|
5
|
+
Author-email: "Francis N." <engineering@projectdavid.co.uk>
|
|
6
|
+
License: PolyForm Noncommercial License 1.0.0
|
|
7
7
|
Project-URL: Homepage, https://github.com/project-david-ai/projectdavid-orm
|
|
8
|
+
Project-URL: Documentation, https://docs.projectdavid.co.uk/docs
|
|
9
|
+
Project-URL: Changelog, https://github.com/project-david-ai/projectdavid-orm/blob/main/CHANGELOG.md
|
|
8
10
|
Keywords: orm,sqlalchemy,models,projectdavid,internal
|
|
9
11
|
Requires-Python: >=3.10
|
|
10
12
|
Description-Content-Type: text/markdown
|
|
@@ -15,8 +17,11 @@ Requires-Dist: pydantic>=2.0
|
|
|
15
17
|
Requires-Dist: python-dotenv
|
|
16
18
|
Provides-Extra: dev
|
|
17
19
|
Requires-Dist: pytest; extra == "dev"
|
|
18
|
-
Requires-Dist: black; extra == "dev"
|
|
19
|
-
Requires-Dist: isort; extra == "dev"
|
|
20
|
+
Requires-Dist: black==24.1.1; extra == "dev"
|
|
21
|
+
Requires-Dist: isort==5.13.2; extra == "dev"
|
|
22
|
+
Requires-Dist: bandit==1.7.7; extra == "dev"
|
|
23
|
+
Requires-Dist: mypy>=1.0; extra == "dev"
|
|
24
|
+
Requires-Dist: pre-commit; extra == "dev"
|
|
20
25
|
Dynamic: license-file
|
|
21
26
|
|
|
22
27
|
# projectdavid-orm
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
# [1.5.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.4.0...v1.5.0) (2026-03-24)
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
### Features
|
|
5
|
-
|
|
6
|
-
* add nullable endpoint field to BaseModel ([a902d5b](https://github.com/project-david-ai/projectdavid-orm/commit/a902d5ba45852cfbb8f6cd31ebcfed3850fc2354))
|
|
7
|
-
* Phase 4 ([fb58012](https://github.com/project-david-ai/projectdavid-orm/commit/fb580125b975369c3a3a089f177c31e74561c72e))
|
|
8
|
-
* Phase 5a ([0ea00c5](https://github.com/project-david-ai/projectdavid-orm/commit/0ea00c5ccde65c4e9d191ed1239e0fe1d069c4d0))
|
|
9
|
-
|
|
10
|
-
# [1.4.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.3.0...v1.4.0) (2026-03-23)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
### Features
|
|
14
|
-
|
|
15
|
-
* Phase 5a ([7213c69](https://github.com/project-david-ai/projectdavid-orm/commit/7213c698beb56eddb5230bbcf609f250e6b20c5e))
|
|
16
|
-
|
|
17
|
-
# [1.3.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.2.0...v1.3.0) (2026-03-23)
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
### Features
|
|
21
|
-
|
|
22
|
-
* Phase 4 ([235a547](https://github.com/project-david-ai/projectdavid-orm/commit/235a54724dee1555c6e23febc9dec5d85dda5328))
|
|
23
|
-
|
|
24
|
-
# [1.2.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.12...v1.2.0) (2026-03-22)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
### Features
|
|
28
|
-
|
|
29
|
-
* add internal_hostname to InferenceDeployment ([20aa5d2](https://github.com/project-david-ai/projectdavid-orm/commit/20aa5d23fae57e510b63bcb59b24ff0c1544be9b))
|
|
30
|
-
|
|
31
|
-
## [1.1.12](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.11...v1.1.12) (2026-03-21)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
### Bug Fixes
|
|
35
|
-
|
|
36
|
-
* clean up column formatting and relationships in models for improved readability and consistency ([fb5a873](https://github.com/project-david-ai/projectdavid-orm/commit/fb5a8736c6d3fa726c806e6bba7de06f00f234e4))
|
|
37
|
-
* clean up column formatting and relationships in models for improved readability and consistency ([fb5e05f](https://github.com/project-david-ai/projectdavid-orm/commit/fb5e05f5b0c94d05f1ce4b32ce46b61f8f33f96d))
|
|
38
|
-
* clean up column formatting and relationships in models for improved readability and consistency ([bca098e](https://github.com/project-david-ai/projectdavid-orm/commit/bca098e76a04011bff6a3d719100d76dbbc650b9))
|
|
39
|
-
* standardize timestamp columns, add soft-delete logic, and improve comments in models ([480baa1](https://github.com/project-david-ai/projectdavid-orm/commit/480baa17f1f34b575d3e6ba921ba6df9be3ac13b))
|
|
40
|
-
* standardize timestamp columns, add soft-delete logic, and improve comments in models ([568c93d](https://github.com/project-david-ai/projectdavid-orm/commit/568c93dc8523c159ebc0c67f5a6b909cc2fe6352))
|
|
41
|
-
|
|
42
|
-
## [1.1.11](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.10...v1.1.11) (2026-03-20)
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
### Bug Fixes
|
|
46
|
-
|
|
47
|
-
* add updated_at column to TrainingJobs table. ([18f38b7](https://github.com/project-david-ai/projectdavid-orm/commit/18f38b77802200038a3bd30bea01492f431d79f0))
|
|
48
|
-
* remove projectdavid_common dependency from pyproject.toml ([8550789](https://github.com/project-david-ai/projectdavid-orm/commit/85507896809a78ff44b0ca07258c3a727d7a2819))
|
|
49
|
-
* standardize timestamp columns, add soft-delete logic, and improve comments in models ([b9859c7](https://github.com/project-david-ai/projectdavid-orm/commit/b9859c74802dde63945d22485db9b426f447c971))
|
|
50
|
-
* update model imports and clean up column definitions in models ([5cc9fff](https://github.com/project-david-ai/projectdavid-orm/commit/5cc9fff84411a36e486742a6736934d41191ade6))
|
|
51
|
-
|
|
52
|
-
## [1.1.10](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.9...v1.1.10) (2026-03-20)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
### Bug Fixes
|
|
56
|
-
|
|
57
|
-
* standardize timestamp columns, add soft-delete logic, and improve comments in models ([0aa5983](https://github.com/project-david-ai/projectdavid-orm/commit/0aa59836c1f37c5ee70a90cea269bfa2a2a8fb1f))
|
|
58
|
-
* standardize timestamp columns, add soft-delete logic, and improve comments in models ([d28dbc2](https://github.com/project-david-ai/projectdavid-orm/commit/d28dbc28a8413a67790f46627b0f35b2e828427c))
|
|
59
|
-
|
|
60
|
-
## [1.1.9](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.8...v1.1.9) (2026-03-19)
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
### Bug Fixes
|
|
64
|
-
|
|
65
|
-
* add updated_at column to TrainingJobs table. ([bf438d8](https://github.com/project-david-ai/projectdavid-orm/commit/bf438d8856af88a03d41dab3b7cf4d5bd56ce339))
|
|
66
|
-
* remove projectdavid_common dependency from pyproject.toml ([6537c42](https://github.com/project-david-ai/projectdavid-orm/commit/6537c42a1a7437c19a601fd154e655739c8f005b))
|
|
67
|
-
|
|
68
|
-
## [1.1.8](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.7...v1.1.8) (2026-03-19)
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
### Bug Fixes
|
|
72
|
-
|
|
73
|
-
* remove projectdavid_common dependency from pyproject.toml ([8f6faa1](https://github.com/project-david-ai/projectdavid-orm/commit/8f6faa1d494a864998e31aa073308c13c65889cf))
|
|
74
|
-
|
|
75
|
-
## [1.1.7](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.6...v1.1.7) (2026-03-19)
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
### Bug Fixes
|
|
79
|
-
|
|
80
|
-
* remove projectdavid_common dependency from pyproject.toml ([15fe2f7](https://github.com/project-david-ai/projectdavid-orm/commit/15fe2f79d6d2ac6ed5fdc59f71a8df891727aeb0))
|
|
81
|
-
|
|
82
|
-
## [1.1.6](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.5...v1.1.6) (2026-03-19)
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
### Bug Fixes
|
|
86
|
-
|
|
87
|
-
* remove redundant newline in README.md instructions ([81a423f](https://github.com/project-david-ai/projectdavid-orm/commit/81a423fb14dc4d46640b3a8d6b5748ddb794f720))
|
|
88
|
-
* upgrade projectdavid_common to v0.53.0 and remove redundant comments in models.py ([ac95695](https://github.com/project-david-ai/projectdavid-orm/commit/ac9569594868bbcbcefe5987195518482fad962b))
|
|
89
|
-
|
|
90
|
-
## [1.1.5](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.4...v1.1.5) (2026-03-18)
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
### Bug Fixes
|
|
94
|
-
|
|
95
|
-
* streamline test_tag_release workflow by removing `dev` branch logic and updating PyPI token configuration ([89a1be2](https://github.com/project-david-ai/projectdavid-orm/commit/89a1be2b410a1ce275f36e224fa407a4be4a1a26))
|
|
96
|
-
|
|
97
|
-
## [1.1.4](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.3...v1.1.4) (2026-03-18)
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
### Bug Fixes
|
|
101
|
-
|
|
102
|
-
* remove unused id-token permission from test_tag_release workflow ([c7225e7](https://github.com/project-david-ai/projectdavid-orm/commit/c7225e7432a26bf1fe32d429347ab79c286bced1))
|
|
103
|
-
|
|
104
|
-
## [1.1.3](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.2...v1.1.3) (2026-03-18)
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
### Bug Fixes
|
|
108
|
-
|
|
109
|
-
* remove unused id-token permission from test_tag_release workflow ([cd79ff9](https://github.com/project-david-ai/projectdavid-orm/commit/cd79ff9465b532031c64a7add2a9785a8bfef567))
|
|
110
|
-
|
|
111
|
-
## [1.1.2](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.1...v1.1.2) (2026-03-18)
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
### Bug Fixes
|
|
115
|
-
|
|
116
|
-
* remove unused id-token permission from test_tag_release workflow ([a34000d](https://github.com/project-david-ai/projectdavid-orm/commit/a34000da052f404db798da691ab2c5fa5815eeeb))
|
|
117
|
-
|
|
118
|
-
## [1.1.1](https://github.com/project-david-ai/projectdavid-orm/compare/v1.1.0...v1.1.1) (2026-03-18)
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
### Bug Fixes
|
|
122
|
-
|
|
123
|
-
* update PyPI repository URLs and add attestations flag in test_tag_release workflow ([a2dca7e](https://github.com/project-david-ai/projectdavid-orm/commit/a2dca7e521732302f8d0acb86390f3f061aae07e))
|
|
124
|
-
|
|
125
|
-
# [1.1.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.0.0...v1.1.0) (2026-03-18)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
### Bug Fixes
|
|
129
|
-
|
|
130
|
-
* remove redundant newline in README.md instructions ([dea758d](https://github.com/project-david-ai/projectdavid-orm/commit/dea758d4d80eb0e6f2b75e80e712652779afbe63))
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
### Features
|
|
134
|
-
|
|
135
|
-
* add version.py for managing application versioning ([6ec6e42](https://github.com/project-david-ai/projectdavid-orm/commit/6ec6e425eba9e790e2a4a4c24aea5fa60c1f1057))
|
|
136
|
-
|
|
137
|
-
# 1.0.0 (2026-03-18)
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
### Bug Fixes
|
|
141
|
-
|
|
142
|
-
* codebase for improved readability by consistently formatting SQLAlchemy column definitions and relationships. Adjust test log messages for clarity. ([e302b55](https://github.com/project-david-ai/projectdavid-orm/commit/e302b5580d35537db028a4cbea23d2d7f833cffc))
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
### Features
|
|
146
|
-
|
|
147
|
-
* Set up release automation and project metadata files, including .releaserc.json, scripts, and editor configurations. ([4a747bb](https://github.com/project-david-ai/projectdavid-orm/commit/4a747bbf133f19c31629587955dd009545e241b5))
|
|
148
|
-
|
|
149
|
-
# Changelog
|
|
150
|
-
|
|
151
|
-
All notable changes to this project will be documented in this file.
|
|
152
|
-
|
|
153
|
-
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
154
|
-
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
155
|
-
|
|
156
|
-
---
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_common.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_common.egg-info/requires.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_common.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm/constants/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm/projectdavid_orm/base.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.5.0 → projectdavid_orm-1.6.1}/src/projectdavid_orm.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|