projectdavid-orm 1.3.0__tar.gz → 1.5.0__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.3.0 → projectdavid_orm-1.5.0}/CHANGELOG.md +16 -0
- {projectdavid_orm-1.3.0/src/projectdavid_orm.egg-info → projectdavid_orm-1.5.0}/PKG-INFO +1 -1
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/pyproject.toml +1 -1
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/projectdavid_orm/models.py +15 -13
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0/src/projectdavid_orm.egg-info}/PKG-INFO +1 -1
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/LICENSE +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/MANIFEST.in +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/README.md +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/setup.cfg +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_common.egg-info/PKG-INFO +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_common.egg-info/SOURCES.txt +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_common.egg-info/dependency_links.txt +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_common.egg-info/entry_points.txt +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_common.egg-info/requires.txt +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_common.egg-info/top_level.txt +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/__init__.py +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/constants/__init__.py +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/ormInterface.py +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/projectdavid_orm/__init__.py +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/projectdavid_orm/base.py +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/utilities/__init__.py +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm.egg-info/SOURCES.txt +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm.egg-info/dependency_links.txt +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm.egg-info/requires.txt +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm.egg-info/top_level.txt +0 -0
- {projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/tests/test_clients.py +0 -0
|
@@ -1,3 +1,19 @@
|
|
|
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
|
+
|
|
1
17
|
# [1.3.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.2.0...v1.3.0) (2026-03-23)
|
|
2
18
|
|
|
3
19
|
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/projectdavid_orm/models.py
RENAMED
|
@@ -821,8 +821,7 @@ class TrainingJob(Base):
|
|
|
821
821
|
output_path = Column(String(512), nullable=True)
|
|
822
822
|
|
|
823
823
|
# Phase 4: node_id stores the Ray node ID (hex string) for traceability.
|
|
824
|
-
# FK to compute_nodes retained for legacy compatibility —
|
|
825
|
-
# in Phase 5 when compute_nodes table is removed entirely.
|
|
824
|
+
# FK to compute_nodes retained for legacy compatibility — dropped in Phase 5.
|
|
826
825
|
node_id = Column(String(64), ForeignKey("compute_nodes.id", ondelete="SET NULL"), nullable=True)
|
|
827
826
|
|
|
828
827
|
dataset = relationship("Dataset", back_populates="training_jobs", lazy="select")
|
|
@@ -881,8 +880,8 @@ class ComputeNode(Base):
|
|
|
881
880
|
"""
|
|
882
881
|
Phase 4 status: LEGACY.
|
|
883
882
|
Node registration and heartbeat are now handled by Ray natively.
|
|
884
|
-
|
|
885
|
-
|
|
883
|
+
Retained for FK compatibility with TrainingJob and FineTunedModel.
|
|
884
|
+
Will be dropped in Phase 5 cleanup.
|
|
886
885
|
"""
|
|
887
886
|
|
|
888
887
|
__tablename__ = "compute_nodes"
|
|
@@ -898,15 +897,13 @@ class ComputeNode(Base):
|
|
|
898
897
|
allocations = relationship("GPUAllocation", back_populates="node", cascade="all, delete-orphan")
|
|
899
898
|
training_jobs = relationship("TrainingJob", back_populates="node")
|
|
900
899
|
active_models = relationship("FineTunedModel", back_populates="node")
|
|
901
|
-
# Phase 4: InferenceDeployment no longer has a FK back to compute_nodes
|
|
902
|
-
# so the deployments relationship is removed from this side too.
|
|
903
900
|
|
|
904
901
|
|
|
905
902
|
class GPUAllocation(Base):
|
|
906
903
|
"""
|
|
907
904
|
Phase 4 status: LEGACY.
|
|
908
905
|
VRAM reservation is now handled by Ray resource scheduling.
|
|
909
|
-
|
|
906
|
+
Retained for schema compatibility. Will be dropped in Phase 5.
|
|
910
907
|
"""
|
|
911
908
|
|
|
912
909
|
__tablename__ = "gpu_allocations"
|
|
@@ -925,8 +922,6 @@ class GPUAllocation(Base):
|
|
|
925
922
|
# ---------------------------------------------------------------------------
|
|
926
923
|
# Model Catalog & Live Deployments
|
|
927
924
|
# ---------------------------------------------------------------------------
|
|
928
|
-
|
|
929
|
-
|
|
930
925
|
class BaseModel(Base):
|
|
931
926
|
__tablename__ = "base_models"
|
|
932
927
|
id = Column(String(128), primary_key=True, index=True)
|
|
@@ -935,15 +930,18 @@ class BaseModel(Base):
|
|
|
935
930
|
parameter_count = Column(String(32))
|
|
936
931
|
is_multimodal = Column(Boolean, default=False)
|
|
937
932
|
created_at = Column(BigInteger, default=lambda: int(time.time()))
|
|
933
|
+
endpoint = Column(
|
|
934
|
+
String(256),
|
|
935
|
+
nullable=True,
|
|
936
|
+
comment="HuggingFace model path or custom inference endpoint identifier.",
|
|
937
|
+
)
|
|
938
938
|
|
|
939
939
|
|
|
940
940
|
class InferenceDeployment(Base):
|
|
941
941
|
__tablename__ = "inference_deployments"
|
|
942
942
|
id = Column(String(64), primary_key=True, index=True)
|
|
943
943
|
|
|
944
|
-
# Phase 4:
|
|
945
|
-
# FK to compute_nodes and uq_node_port_deployment unique constraint have
|
|
946
|
-
# been dropped from the DB — this column is no longer constrained.
|
|
944
|
+
# Phase 4: plain string storing the Ray node ID (hex). No FK constraint.
|
|
947
945
|
node_id = Column(String(128), nullable=True)
|
|
948
946
|
|
|
949
947
|
internal_hostname = Column(String(128), nullable=True)
|
|
@@ -954,6 +952,10 @@ class InferenceDeployment(Base):
|
|
|
954
952
|
current_throughput = Column(Float, default=0.0)
|
|
955
953
|
last_seen = Column(BigInteger, default=lambda: int(time.time()))
|
|
956
954
|
|
|
957
|
-
#
|
|
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
|
+
tensor_parallel_size = Column(Integer, nullable=False, default=1)
|
|
959
|
+
|
|
958
960
|
base_model = relationship("BaseModel")
|
|
959
961
|
fine_tuned_model = relationship("FineTunedModel")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_common.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_common.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_common.egg-info/requires.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_common.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/constants/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/projectdavid_orm/__init__.py
RENAMED
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/projectdavid_orm/base.py
RENAMED
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm/utilities/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm.egg-info/requires.txt
RENAMED
|
File without changes
|
{projectdavid_orm-1.3.0 → projectdavid_orm-1.5.0}/src/projectdavid_orm.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|