projectdavid-orm 1.3.0__tar.gz → 1.4.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.
Files changed (26) hide show
  1. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/CHANGELOG.md +7 -0
  2. {projectdavid_orm-1.3.0/src/projectdavid_orm.egg-info → projectdavid_orm-1.4.0}/PKG-INFO +1 -1
  3. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/pyproject.toml +1 -1
  4. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm/projectdavid_orm/models.py +10 -11
  5. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0/src/projectdavid_orm.egg-info}/PKG-INFO +1 -1
  6. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/LICENSE +0 -0
  7. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/MANIFEST.in +0 -0
  8. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/README.md +0 -0
  9. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/setup.cfg +0 -0
  10. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_common.egg-info/PKG-INFO +0 -0
  11. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_common.egg-info/SOURCES.txt +0 -0
  12. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_common.egg-info/dependency_links.txt +0 -0
  13. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_common.egg-info/entry_points.txt +0 -0
  14. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_common.egg-info/requires.txt +0 -0
  15. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_common.egg-info/top_level.txt +0 -0
  16. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm/__init__.py +0 -0
  17. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm/constants/__init__.py +0 -0
  18. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm/ormInterface.py +0 -0
  19. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm/projectdavid_orm/__init__.py +0 -0
  20. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm/projectdavid_orm/base.py +0 -0
  21. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm/utilities/__init__.py +0 -0
  22. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm.egg-info/SOURCES.txt +0 -0
  23. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm.egg-info/dependency_links.txt +0 -0
  24. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm.egg-info/requires.txt +0 -0
  25. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/src/projectdavid_orm.egg-info/top_level.txt +0 -0
  26. {projectdavid_orm-1.3.0 → projectdavid_orm-1.4.0}/tests/test_clients.py +0 -0
@@ -1,3 +1,10 @@
1
+ # [1.4.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.3.0...v1.4.0) (2026-03-23)
2
+
3
+
4
+ ### Features
5
+
6
+ * Phase 5a ([7213c69](https://github.com/project-david-ai/projectdavid-orm/commit/7213c698beb56eddb5230bbcf609f250e6b20c5e))
7
+
1
8
  # [1.3.0](https://github.com/project-david-ai/projectdavid-orm/compare/v1.2.0...v1.3.0) (2026-03-23)
2
9
 
3
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid-orm
3
- Version: 1.3.0
3
+ Version: 1.4.0
4
4
  Summary: Shared SQLAlchemy ORM models for ProjectDavid services
5
5
  Author-email: "Francis N." <francis.neequaye@projectdavid.co.uk>
6
6
  License: Polyform
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "projectdavid-orm"
7
- version = "1.3.0"
7
+ version = "1.4.0"
8
8
  description = "Shared SQLAlchemy ORM models for ProjectDavid services"
9
9
  readme = "README.md"
10
10
  authors = [
@@ -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 — will be dropped
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
- This table is retained for FK compatibility with TrainingJob and
885
- FineTunedModel. Will be dropped in Phase 5 cleanup.
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
- Table retained for schema compatibility. Will be dropped in Phase 5.
906
+ Retained for schema compatibility. Will be dropped in Phase 5.
910
907
  """
911
908
 
912
909
  __tablename__ = "gpu_allocations"
@@ -941,9 +938,7 @@ class InferenceDeployment(Base):
941
938
  __tablename__ = "inference_deployments"
942
939
  id = Column(String(64), primary_key=True, index=True)
943
940
 
944
- # Phase 4: node_id is now a plain string storing the Ray node ID (hex).
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.
941
+ # Phase 4: plain string storing the Ray node ID (hex). No FK constraint.
947
942
  node_id = Column(String(128), nullable=True)
948
943
 
949
944
  internal_hostname = Column(String(128), nullable=True)
@@ -954,6 +949,10 @@ class InferenceDeployment(Base):
954
949
  current_throughput = Column(Float, default=0.0)
955
950
  last_seen = Column(BigInteger, default=lambda: int(time.time()))
956
951
 
957
- # Phase 4: node relationship removed — node_id is no longer a FK.
952
+ # Inference sharding: number of GPUs this deployment spans.
953
+ # 1 = single GPU (default, backward compatible).
954
+ # N > 1 = tensor parallel across N GPUs via vLLM --tensor-parallel-size.
955
+ tensor_parallel_size = Column(Integer, nullable=False, default=1)
956
+
958
957
  base_model = relationship("BaseModel")
959
958
  fine_tuned_model = relationship("FineTunedModel")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: projectdavid-orm
3
- Version: 1.3.0
3
+ Version: 1.4.0
4
4
  Summary: Shared SQLAlchemy ORM models for ProjectDavid services
5
5
  Author-email: "Francis N." <francis.neequaye@projectdavid.co.uk>
6
6
  License: Polyform