Skip to content
This repository was archived by the owner on Jan 23, 2026. It is now read-only.

Commit e000de8

Browse files
committed
Add private shadow variables to store source Distribution and EntryPoint
1 parent 2eb5315 commit e000de8

1 file changed

Lines changed: 18 additions & 3 deletions

File tree

  • packages/jumpstarter-cli-pkg/jumpstarter_cli_pkg/repository

packages/jumpstarter-cli-pkg/jumpstarter_cli_pkg/repository/package.py

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ class V1Alpha1AdapterEntryPoint(JsonBaseModel):
1313
A Jumpstarter adapter entry point.
1414
"""
1515

16+
_entry_point: EntryPoint
17+
1618
api_version: Literal["jumpstarter.dev/v1alpha1"] = Field(default="jumpstarter.dev/v1alpha1", alias="apiVersion")
1719
kind: Literal["AdapterEntryPoint"] = Field(default="AdapterEntryPoint")
1820

@@ -22,14 +24,18 @@ class V1Alpha1AdapterEntryPoint(JsonBaseModel):
2224

2325
@staticmethod
2426
def from_entry_point(ep: EntryPoint):
25-
return V1Alpha1AdapterEntryPoint(name=ep.name, type=ep.value.replace(":", "."), package=ep.dist.name)
27+
return V1Alpha1AdapterEntryPoint(
28+
_entry_point=ep, name=ep.name, type=ep.value.replace(":", "."), package=ep.dist.name
29+
)
2630

2731

2832
class V1Alpha1DriverClientEntryPoint(JsonBaseModel):
2933
"""
3034
A Jumpstarter driver client entry point.
3135
"""
3236

37+
_entry_point: EntryPoint
38+
3339
api_version: Literal["jumpstarter.dev/v1alpha1"] = Field(default="jumpstarter.dev/v1alpha1", alias="apiVersion")
3440
kind: Literal["DriverClientEntryPoint"] = Field(default="DriverClientEntryPoint")
3541

@@ -39,14 +45,18 @@ class V1Alpha1DriverClientEntryPoint(JsonBaseModel):
3945

4046
@staticmethod
4147
def from_entry_point(ep: EntryPoint):
42-
return V1Alpha1DriverClientEntryPoint(name=ep.name, type=ep.value.replace(":", "."), package=ep.dist.name)
48+
return V1Alpha1DriverClientEntryPoint(
49+
_entry_point=ep, name=ep.name, type=ep.value.replace(":", "."), package=ep.dist.name
50+
)
4351

4452

4553
class V1Alpha1DriverEntryPoint(JsonBaseModel):
4654
"""
4755
A Jumpstarter driver entry point.
4856
"""
4957

58+
_entry_point: EntryPoint
59+
5060
api_version: Literal["jumpstarter.dev/v1alpha1"] = Field(default="jumpstarter.dev/v1alpha1", alias="apiVersion")
5161
kind: Literal["DriverEntryPoint"] = Field(default="DriverEntryPoint")
5262

@@ -56,7 +66,9 @@ class V1Alpha1DriverEntryPoint(JsonBaseModel):
5666

5767
@staticmethod
5868
def from_entry_point(ep: EntryPoint):
59-
return V1Alpha1DriverEntryPoint(name=ep.name, type=ep.value.replace(":", "."), package=ep.dist.name)
69+
return V1Alpha1DriverEntryPoint(
70+
_entry_point=ep, name=ep.name, type=ep.value.replace(":", "."), package=ep.dist.name
71+
)
6072

6173

6274
class V1Alpha1AdapterEntryPointList(ListBaseModel[V1Alpha1AdapterEntryPoint]):
@@ -88,6 +100,8 @@ class V1Alpha1DriverPackage(JsonBaseModel):
88100
A Jumpstarter driver package.
89101
"""
90102

103+
_distribution: Distribution
104+
91105
api_version: Literal["jumpstarter.dev/v1alpha1"] = Field(default="jumpstarter.dev/v1alpha1", alias="apiVersion")
92106
kind: Literal["DriverPackage"] = Field(default="DriverPackage")
93107
name: str
@@ -168,6 +182,7 @@ def from_distribution(dist: Distribution):
168182
raise JumpstarterException(f"No valid Jumpstarter entry points found for package '{dist.name}'")
169183
# Return the completed driver package
170184
return V1Alpha1DriverPackage(
185+
_distribution=dist,
171186
name=dist.name,
172187
categories=V1Alpha1DriverPackage.requires_dist_to_categories(
173188
dist.name, dist.metadata.get_all("Requires-Dist")

0 commit comments

Comments
 (0)