unitysvc-services 0.1.0__py3-none-any.whl → 0.2.0__py3-none-any.whl

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.
@@ -1,6 +1,5 @@
1
1
  """Format command - format data files."""
2
2
 
3
- import os
4
3
  from pathlib import Path
5
4
 
6
5
  import typer
@@ -14,7 +13,7 @@ console = Console()
14
13
  def format_data(
15
14
  data_dir: Path | None = typer.Argument(
16
15
  None,
17
- help="Directory containing data files to format (default: ./data or UNITYSVC_DATA_DIR env var)",
16
+ help="Directory containing data files to format (default: current directory)",
18
17
  ),
19
18
  check_only: bool = typer.Option(
20
19
  False,
@@ -35,11 +34,7 @@ def format_data(
35
34
 
36
35
  # Set data directory
37
36
  if data_dir is None:
38
- data_dir_str = os.getenv("UNITYSVC_DATA_DIR")
39
- if data_dir_str:
40
- data_dir = Path(data_dir_str)
41
- else:
42
- data_dir = Path.cwd() / "data"
37
+ data_dir = Path.cwd()
43
38
 
44
39
  if not data_dir.is_absolute():
45
40
  data_dir = Path.cwd() / data_dir
unitysvc_services/list.py CHANGED
@@ -1,6 +1,5 @@
1
1
  """List command group - list local data files."""
2
2
 
3
- import os
4
3
  from pathlib import Path
5
4
 
6
5
  import typer
@@ -21,25 +20,19 @@ console = Console()
21
20
  def list_providers(
22
21
  data_dir: Path | None = typer.Argument(
23
22
  None,
24
- help="Directory containing provider files (default: ./data or UNITYSVC_DATA_DIR env var)",
23
+ help="Directory containing provider files (default: current directory)",
25
24
  ),
26
25
  ):
27
26
  """List all provider files found in the data directory."""
28
27
  # Set data directory
29
28
  if data_dir is None:
30
- data_dir_str = os.getenv("UNITYSVC_DATA_DIR")
31
- if data_dir_str:
32
- data_dir = Path(data_dir_str)
33
- else:
34
- data_dir = Path.cwd() / "data"
29
+ data_dir = Path.cwd()
35
30
 
36
31
  if not data_dir.is_absolute():
37
32
  data_dir = Path.cwd() / data_dir
38
33
 
39
34
  if not data_dir.exists():
40
- console.print(
41
- f"[red]✗[/red] Data directory not found: {data_dir}", style="bold red"
42
- )
35
+ console.print(f"[red]✗[/red] Data directory not found: {data_dir}", style="bold red")
43
36
  raise typer.Exit(code=1)
44
37
 
45
38
  console.print(f"[blue]Searching for providers in:[/blue] {data_dir}\n")
@@ -72,25 +65,19 @@ def list_providers(
72
65
  def list_sellers(
73
66
  data_dir: Path | None = typer.Argument(
74
67
  None,
75
- help="Directory containing seller files (default: ./data or UNITYSVC_DATA_DIR env var)",
68
+ help="Directory containing seller files (default: current directory)",
76
69
  ),
77
70
  ):
78
71
  """List all seller files found in the data directory."""
79
72
  # Set data directory
80
73
  if data_dir is None:
81
- data_dir_str = os.getenv("UNITYSVC_DATA_DIR")
82
- if data_dir_str:
83
- data_dir = Path(data_dir_str)
84
- else:
85
- data_dir = Path.cwd() / "data"
74
+ data_dir = Path.cwd()
86
75
 
87
76
  if not data_dir.is_absolute():
88
77
  data_dir = Path.cwd() / data_dir
89
78
 
90
79
  if not data_dir.exists():
91
- console.print(
92
- f"[red]✗[/red] Data directory not found: {data_dir}", style="bold red"
93
- )
80
+ console.print(f"[red]✗[/red] Data directory not found: {data_dir}", style="bold red")
94
81
  raise typer.Exit(code=1)
95
82
 
96
83
  console.print(f"[blue]Searching for sellers in:[/blue] {data_dir}\n")
@@ -123,25 +110,19 @@ def list_sellers(
123
110
  def list_offerings(
124
111
  data_dir: Path | None = typer.Argument(
125
112
  None,
126
- help="Directory containing service files (default: ./data or UNITYSVC_DATA_DIR env var)",
113
+ help="Directory containing service files (default: current directory)",
127
114
  ),
128
115
  ):
129
116
  """List all service offering files found in the data directory."""
130
117
  # Set data directory
131
118
  if data_dir is None:
132
- data_dir_str = os.getenv("UNITYSVC_DATA_DIR")
133
- if data_dir_str:
134
- data_dir = Path(data_dir_str)
135
- else:
136
- data_dir = Path.cwd() / "data"
119
+ data_dir = Path.cwd()
137
120
 
138
121
  if not data_dir.is_absolute():
139
122
  data_dir = Path.cwd() / data_dir
140
123
 
141
124
  if not data_dir.exists():
142
- console.print(
143
- f"[red]✗[/red] Data directory not found: {data_dir}", style="bold red"
144
- )
125
+ console.print(f"[red]✗[/red] Data directory not found: {data_dir}", style="bold red")
145
126
  raise typer.Exit(code=1)
146
127
 
147
128
  console.print(f"[blue]Searching for service offerings in:[/blue] {data_dir}\n")
@@ -172,34 +153,26 @@ def list_offerings(
172
153
  )
173
154
 
174
155
  console.print(table)
175
- console.print(
176
- f"\n[green]Total:[/green] {len(service_files)} service offering file(s)"
177
- )
156
+ console.print(f"\n[green]Total:[/green] {len(service_files)} service offering file(s)")
178
157
 
179
158
 
180
159
  @app.command("listings")
181
160
  def list_listings(
182
161
  data_dir: Path | None = typer.Argument(
183
162
  None,
184
- help="Directory containing listing files (default: ./data or UNITYSVC_DATA_DIR env var)",
163
+ help="Directory containing listing files (default: current directory)",
185
164
  ),
186
165
  ):
187
166
  """List all service listing files found in the data directory."""
188
167
  # Set data directory
189
168
  if data_dir is None:
190
- data_dir_str = os.getenv("UNITYSVC_DATA_DIR")
191
- if data_dir_str:
192
- data_dir = Path(data_dir_str)
193
- else:
194
- data_dir = Path.cwd() / "data"
169
+ data_dir = Path.cwd()
195
170
 
196
171
  if not data_dir.is_absolute():
197
172
  data_dir = Path.cwd() / data_dir
198
173
 
199
174
  if not data_dir.exists():
200
- console.print(
201
- f"[red]✗[/red] Data directory not found: {data_dir}", style="bold red"
202
- )
175
+ console.print(f"[red]✗[/red] Data directory not found: {data_dir}", style="bold red")
203
176
  raise typer.Exit(code=1)
204
177
 
205
178
  console.print(f"[blue]Searching for service listings in:[/blue] {data_dir}\n")
@@ -240,6 +213,4 @@ def list_listings(
240
213
  )
241
214
 
242
215
  console.print(table)
243
- console.print(
244
- f"\n[green]Total:[/green] {len(listing_files)} service listing file(s)"
245
- )
216
+ console.print(f"\n[green]Total:[/green] {len(listing_files)} service listing file(s)")
@@ -206,6 +206,22 @@ class UpstreamStatusEnum(StrEnum):
206
206
  deprecated = "deprecated"
207
207
 
208
208
 
209
+ class ProviderStatusEnum(StrEnum):
210
+ """Provider status enum."""
211
+
212
+ active = "active"
213
+ disabled = "disabled"
214
+ incomplete = "incomplete" # Provider information is incomplete
215
+
216
+
217
+ class SellerStatusEnum(StrEnum):
218
+ """Seller status enum."""
219
+
220
+ active = "active"
221
+ disabled = "disabled"
222
+ incomplete = "incomplete" # Seller information is incomplete
223
+
224
+
209
225
  class Document(BaseModel):
210
226
  model_config = ConfigDict(extra="forbid")
211
227
 
@@ -30,9 +30,7 @@ class ListingV1(BaseModel):
30
30
  ),
31
31
  )
32
32
 
33
- seller_name: str = Field(
34
- description="Name of the seller offering this service listing"
35
- )
33
+ seller_name: str | None = Field(default=None, description="Name of the seller offering this service listing")
36
34
 
37
35
  # unique name for each provider, usually following upstream naming convention
38
36
  # status of the service, public, deprecated etc
@@ -3,7 +3,7 @@ from typing import Any
3
3
 
4
4
  from pydantic import BaseModel, ConfigDict, EmailStr, Field, HttpUrl
5
5
 
6
- from unitysvc_services.models.base import AccessInterface, Document
6
+ from unitysvc_services.models.base import AccessInterface, Document, ProviderStatusEnum
7
7
 
8
8
 
9
9
  class ProviderV1(BaseModel):
@@ -51,3 +51,9 @@ class ProviderV1(BaseModel):
51
51
  homepage: HttpUrl
52
52
  contact_email: EmailStr
53
53
  secondary_contact_email: EmailStr | None = None
54
+
55
+ # Status field to track provider state
56
+ status: ProviderStatusEnum = Field(
57
+ default=ProviderStatusEnum.active,
58
+ description="Provider status: active, disabled, or incomplete",
59
+ )
@@ -2,7 +2,7 @@ from datetime import datetime
2
2
 
3
3
  from pydantic import BaseModel, ConfigDict, EmailStr, Field, HttpUrl
4
4
 
5
- from unitysvc_services.models.base import Document, SellerTypeEnum
5
+ from unitysvc_services.models.base import Document, SellerStatusEnum, SellerTypeEnum
6
6
 
7
7
 
8
8
  class SellerV1(BaseModel):
@@ -98,10 +98,10 @@ class SellerV1(BaseModel):
98
98
  # fields for business operation purposes
99
99
  #
100
100
 
101
- # Status flags - these would typically be set by the backend
102
- is_active: bool = Field(
103
- default=True,
104
- description="Whether the seller is active on the marketplace",
101
+ # Status field to track seller state
102
+ status: SellerStatusEnum = Field(
103
+ default=SellerStatusEnum.active,
104
+ description="Seller status: active, disabled, or incomplete",
105
105
  )
106
106
 
107
107
  is_verified: bool = Field(
@@ -19,7 +19,7 @@ console = Console()
19
19
  def populate(
20
20
  data_dir: Path | None = typer.Argument(
21
21
  None,
22
- help="Directory containing provider data files (default: ./data or UNITYSVC_DATA_DIR env var)",
22
+ help="Directory containing provider data files (default: current directory)",
23
23
  ),
24
24
  provider_name: str | None = typer.Option(
25
25
  None,
@@ -41,11 +41,7 @@ def populate(
41
41
  """
42
42
  # Set data directory
43
43
  if data_dir is None:
44
- data_dir_str = os.getenv("UNITYSVC_DATA_DIR")
45
- if data_dir_str:
46
- data_dir = Path(data_dir_str)
47
- else:
48
- data_dir = Path.cwd() / "data"
44
+ data_dir = Path.cwd()
49
45
 
50
46
  if not data_dir.is_absolute():
51
47
  data_dir = Path.cwd() / data_dir