uipath 2.0.21__py3-none-any.whl → 2.0.23__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.

Potentially problematic release.


This version of uipath might be problematic. Click here for more details.

uipath/_cli/__init__.py CHANGED
@@ -13,9 +13,18 @@ from .cli_publish import publish as publish # type: ignore
13
13
  from .cli_run import run as run # type: ignore
14
14
 
15
15
 
16
+ def _get_safe_version() -> str:
17
+ """Get the version of the uipath package."""
18
+ try:
19
+ version = importlib.metadata.version("uipath")
20
+ return version
21
+ except importlib.metadata.PackageNotFoundError:
22
+ return "unknown"
23
+
24
+
16
25
  @click.group(invoke_without_command=True)
17
26
  @click.version_option(
18
- importlib.metadata.version("uipath"),
27
+ _get_safe_version(),
19
28
  prog_name="uipath",
20
29
  message="%(prog)s version %(version)s",
21
30
  )
uipath/_cli/cli_invoke.py CHANGED
@@ -86,15 +86,14 @@ def invoke(entrypoint: Optional[str], input: Optional[str]) -> None:
86
86
  click.Abort()
87
87
  if job_key:
88
88
  job_url = f"{base_url}/orchestrator_/jobs(sidepanel:sidepanel/jobs/{job_key}/details)?fid={personal_workspace_folder_id}"
89
- click.echo("\n✨ Job started successfully!")
89
+ click.echo("✨ Job started successfully!")
90
90
  click.echo(
91
- "\n🔗 Monitor your job here: "
91
+ "🔗 Monitor your job here: "
92
92
  + click.style(
93
93
  f"\u001b]8;;{job_url}\u001b\\{job_url}\u001b]8;;\u001b\\",
94
94
  fg="bright_blue",
95
95
  bold=True,
96
96
  )
97
- + "\n"
98
97
  )
99
98
  else:
100
99
  click.echo(f"\n❌ Error starting job: {response.text}")
@@ -30,6 +30,31 @@ def get_most_recent_package():
30
30
  return nupkg_files_with_time[0][0]
31
31
 
32
32
 
33
+ def get_available_feeds(
34
+ base_url: str, headers: dict[str, str]
35
+ ) -> list[tuple[str, str]]:
36
+ url = f"{base_url}/orchestrator_/api/PackageFeeds/GetFeeds"
37
+ response = requests.get(url, headers=headers)
38
+ if response.status_code != 200:
39
+ click.echo(
40
+ f"❌ Failed to fetch available feeds. Status code: {response.status_code}"
41
+ )
42
+ if response.text:
43
+ click.echo(response.text)
44
+ click.get_current_context().exit(1)
45
+ try:
46
+ available_feeds = [
47
+ feed for feed in response.json() if feed["purpose"] == "Processes"
48
+ ]
49
+ return [(feed["name"], feed["id"]) for feed in available_feeds]
50
+ except Exception as e:
51
+ click.echo(
52
+ "❌ Failed to deserialize available feeds.",
53
+ )
54
+ click.echo(e)
55
+ click.get_current_context().exit(1)
56
+
57
+
33
58
  @click.command()
34
59
  @click.option(
35
60
  "--tenant",
@@ -39,8 +64,8 @@ def get_most_recent_package():
39
64
  help="Whether to publish to the tenant package feed",
40
65
  )
41
66
  @click.option(
42
- "--personal-workspace",
43
- "-p",
67
+ "--my-workspace",
68
+ "-w",
44
69
  "feed",
45
70
  flag_value="personal",
46
71
  help="Whether to publish to the personal workspace",
@@ -49,13 +74,25 @@ def publish(feed):
49
74
  spinner = Spinner()
50
75
  current_path = os.getcwd()
51
76
  load_dotenv(os.path.join(current_path, ".env"), override=True)
77
+ [base_url, token] = get_env_vars()
78
+ headers = {"Authorization": f"Bearer {token}"}
52
79
  if feed is None:
53
- click.echo("Select feed type:")
54
- click.echo(" 0: Tenant package feed")
55
- click.echo(" 1: Personal workspace")
80
+ available_feeds = get_available_feeds(base_url, headers)
81
+ click.echo("👇 Select package feed:")
82
+ for idx, feed in enumerate(available_feeds, start=0):
83
+ click.echo(f" {idx}: {feed[0]}")
56
84
  feed_idx = click.prompt("Select feed", type=int)
57
- feed = "tenant" if feed_idx == 0 else "personal"
58
- click.echo(f"Selected feed: {feed}")
85
+ if feed_idx < 0:
86
+ click.echo(" Invalid input")
87
+ click.get_current_context().exit(1)
88
+ try:
89
+ selected_feed = available_feeds[feed_idx]
90
+ feed = selected_feed[1]
91
+ except IndexError:
92
+ click.echo("❌ Invalid feed selected")
93
+ click.get_current_context().exit(1)
94
+
95
+ click.echo(f"Selected feed: {click.style(str(selected_feed[0]), fg='cyan')}")
59
96
 
60
97
  os.makedirs(".uipath", exist_ok=True)
61
98
 
@@ -71,19 +108,19 @@ def publish(feed):
71
108
 
72
109
  package_to_publish_path = os.path.join(".uipath", most_recent)
73
110
 
74
- [base_url, token] = get_env_vars(spinner)
75
-
76
111
  url = f"{base_url}/orchestrator_/odata/Processes/UiPath.Server.Configuration.OData.UploadPackage()"
112
+ is_personal_workspace = False
77
113
 
78
- if feed == "personal":
79
- # Get current user extended info to get personal workspace ID
114
+ if feed and feed != "tenant":
115
+ # Check user personal workspace
80
116
  personal_workspace_feed_id, personal_workspace_folder_id = (
81
117
  get_personal_workspace_info(base_url, token, spinner)
82
118
  )
83
-
84
- url = url + "?feedId=" + personal_workspace_feed_id
85
-
86
- headers = {"Authorization": f"Bearer {token}"}
119
+ if feed == "personal" or feed == personal_workspace_feed_id:
120
+ is_personal_workspace = True
121
+ url = url + "?feedId=" + personal_workspace_feed_id
122
+ else:
123
+ url = url + "?feedId=" + feed
87
124
 
88
125
  with open(package_to_publish_path, "rb") as f:
89
126
  files = {"file": (package_to_publish_path, f, "application/octet-stream")}
@@ -95,7 +132,7 @@ def publish(feed):
95
132
  click.echo(
96
133
  click.style("✓ ", fg="green", bold=True) + "Package published successfully!"
97
134
  )
98
- if feed == "personal":
135
+ if is_personal_workspace:
99
136
  try:
100
137
  data = json.loads(response.text)
101
138
  package_name = json.loads(data["value"][0]["Body"])["Id"]
@@ -108,7 +145,7 @@ def publish(feed):
108
145
  if release_id:
109
146
  process_url = f"{base_url}/orchestrator_/processes/{release_id}/edit?fid={personal_workspace_folder_id}"
110
147
  click.echo(
111
- "\n🔧 Configure your process: "
148
+ "🔧 Configure your process: "
112
149
  + click.style(
113
150
  f"\u001b]8;;{process_url}\u001b\\{process_url}\u001b]8;;\u001b\\",
114
151
  fg="bright_blue",
@@ -116,7 +153,7 @@ def publish(feed):
116
153
  )
117
154
  )
118
155
  click.echo(
119
- "\n💡 Use the link above to configure any environment variables\n"
156
+ "💡 Use the link above to configure any environment variables"
120
157
  )
121
158
  else:
122
159
  click.echo("⚠️ Warning: Failed to compose process url")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uipath
3
- Version: 2.0.21
3
+ Version: 2.0.23
4
4
  Summary: Python SDK and CLI for UiPath Platform, enabling programmatic interaction with automation services, process management, and deployment tools.
5
5
  Project-URL: Homepage, https://uipath.com
6
6
  Project-URL: Repository, https://github.com/UiPath/uipath-python
@@ -5,14 +5,14 @@ uipath/_folder_context.py,sha256=oxX7o8ilU9sA_vEKLr2sZZCHnvRwJ0_as-LOMc4hxc4,190
5
5
  uipath/_uipath.py,sha256=D9UWyRInN2Q8HFEQtYaYzT3DCZ3tW_OCBs_4RRqRVuY,2795
6
6
  uipath/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  uipath/_cli/README.md,sha256=GLtCfbeIKZKNnGTCsfSVqRQ27V1btT1i2bSAyW_xZl4,474
8
- uipath/_cli/__init__.py,sha256=hdwRcD6wsvenqYTU5RImu4enh-RRmkkQ8lgYIC60z1E,1655
8
+ uipath/_cli/__init__.py,sha256=vGz3vJHkUvgK9_lKdzqiwwHkge1TCALRiOzGGwyr-8E,1885
9
9
  uipath/_cli/cli_auth.py,sha256=y_F5Rm3Juxy5oKn0nyPtMidNf6awywOw9VCLUvnDrCc,3420
10
10
  uipath/_cli/cli_deploy.py,sha256=h8qwJkXnW6JURsg4YcocJInGA4dwkl4CZkpT1Cn9A3c,268
11
11
  uipath/_cli/cli_init.py,sha256=75wHT0A4LuZFjlBQ8F34958Aq_o_KJdOlTQfwvFUqo4,3916
12
- uipath/_cli/cli_invoke.py,sha256=evbmP_EAxYbKg-tPB7MKNGJqwNIT3V-GN_COqvf2WyQ,3197
12
+ uipath/_cli/cli_invoke.py,sha256=Qp9ao4xDeXSlKtxXWNn1oHxOuEcFZN7v6TZl0LjaWYk,3170
13
13
  uipath/_cli/cli_new.py,sha256=ViGqmheiuH5KLKUs0ECtv-xuxH4HtMxfb8bV8D2673M,2183
14
14
  uipath/_cli/cli_pack.py,sha256=V5fm3XPJ_vtJ2lrLoQU_jDgAKVe9lsipeB6n_7Nc4WM,13955
15
- uipath/_cli/cli_publish.py,sha256=X5nMGpMMxrWrm8Kb8p7sYlUcO-K5_roLxVu037HQvQI,4309
15
+ uipath/_cli/cli_publish.py,sha256=QEvSeiyC5oDc_YNELgOPmATRibNPd-sr9_jje5PKOm8,5744
16
16
  uipath/_cli/cli_run.py,sha256=B5L7fE2IqysIEcweedU8GEy7ekMGwpeRagYBCB_cdQI,4597
17
17
  uipath/_cli/middlewares.py,sha256=IiJgjsqrJVKSXx4RcIKHWoH-SqWqpHPbhzkQEybmAos,3937
18
18
  uipath/_cli/spinner.py,sha256=bS-U_HA5yne11ejUERu7CQoXmWdabUD2bm62EfEdV8M,1107
@@ -77,8 +77,8 @@ uipath/tracing/__init__.py,sha256=GimSzv6qkCOlHOG1WtjYKJsZqcXpA28IgoXfR33JhiA,13
77
77
  uipath/tracing/_otel_exporters.py,sha256=x0PDPmDKJcxashsuehVsSsqBCzRr6WsNFaq_3_HS5F0,3014
78
78
  uipath/tracing/_traced.py,sha256=9nEjFjGuxPlJ_4OXoClJ79xcbFK6C8iyI03kQQSDaJg,14834
79
79
  uipath/tracing/_utils.py,sha256=5SwsTGpHkIouXBndw-u8eCLnN4p7LM8DsTCCuf2jJgs,10165
80
- uipath-2.0.21.dist-info/METADATA,sha256=3-p6Zhe0gk6mqRivPExTYKPothc746T5U6nwzFST2nQ,6106
81
- uipath-2.0.21.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
82
- uipath-2.0.21.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
83
- uipath-2.0.21.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
84
- uipath-2.0.21.dist-info/RECORD,,
80
+ uipath-2.0.23.dist-info/METADATA,sha256=999C2E6QgRBLnFsxTtDrY-Cmjrc_73GC99_LByCWobo,6106
81
+ uipath-2.0.23.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
82
+ uipath-2.0.23.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
83
+ uipath-2.0.23.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
84
+ uipath-2.0.23.dist-info/RECORD,,