uipath 2.0.25__py3-none-any.whl → 2.0.27__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/_auth/_auth_server.py +0 -1
- uipath/_cli/_auth/_portal_service.py +18 -10
- uipath/_cli/_utils/_console.py +215 -0
- uipath/_cli/_utils/_folders.py +12 -14
- uipath/_cli/_utils/_processes.py +10 -21
- uipath/_cli/cli_auth.py +45 -46
- uipath/_cli/cli_deploy.py +1 -0
- uipath/_cli/cli_init.py +63 -68
- uipath/_cli/cli_invoke.py +42 -49
- uipath/_cli/cli_new.py +23 -28
- uipath/_cli/cli_pack.py +61 -44
- uipath/_cli/cli_publish.py +63 -74
- uipath/_cli/cli_run.py +1 -1
- {uipath-2.0.25.dist-info → uipath-2.0.27.dist-info}/METADATA +1 -1
- {uipath-2.0.25.dist-info → uipath-2.0.27.dist-info}/RECORD +18 -17
- {uipath-2.0.25.dist-info → uipath-2.0.27.dist-info}/WHEEL +0 -0
- {uipath-2.0.25.dist-info → uipath-2.0.27.dist-info}/entry_points.txt +0 -0
- {uipath-2.0.25.dist-info → uipath-2.0.27.dist-info}/licenses/LICENSE +0 -0
uipath/_cli/cli_publish.py
CHANGED
|
@@ -7,25 +7,24 @@ import requests
|
|
|
7
7
|
from dotenv import load_dotenv
|
|
8
8
|
|
|
9
9
|
from ._utils._common import get_env_vars
|
|
10
|
+
from ._utils._console import ConsoleLogger
|
|
10
11
|
from ._utils._folders import get_personal_workspace_info
|
|
11
12
|
from ._utils._processes import get_release_info
|
|
12
|
-
|
|
13
|
+
|
|
14
|
+
console = ConsoleLogger()
|
|
13
15
|
|
|
14
16
|
|
|
15
17
|
def get_most_recent_package():
|
|
16
18
|
nupkg_files = [f for f in os.listdir(".uipath") if f.endswith(".nupkg")]
|
|
17
19
|
if not nupkg_files:
|
|
18
|
-
|
|
20
|
+
console.error("No .nupkg files found. Please run `uipath pack` first.")
|
|
19
21
|
return
|
|
20
|
-
|
|
21
22
|
# Get full path and modification time for each file
|
|
22
23
|
nupkg_files_with_time = [
|
|
23
24
|
(f, os.path.getmtime(os.path.join(".uipath", f))) for f in nupkg_files
|
|
24
25
|
]
|
|
25
|
-
|
|
26
26
|
# Sort by modification time (most recent first)
|
|
27
27
|
nupkg_files_with_time.sort(key=lambda x: x[1], reverse=True)
|
|
28
|
-
|
|
29
28
|
# Get most recent file
|
|
30
29
|
return nupkg_files_with_time[0][0]
|
|
31
30
|
|
|
@@ -36,23 +35,16 @@ def get_available_feeds(
|
|
|
36
35
|
url = f"{base_url}/orchestrator_/api/PackageFeeds/GetFeeds"
|
|
37
36
|
response = requests.get(url, headers=headers)
|
|
38
37
|
if response.status_code != 200:
|
|
39
|
-
|
|
40
|
-
f"
|
|
38
|
+
console.error(
|
|
39
|
+
f"Failed to fetch available feeds. Please check your connection. Status code: {response.status_code} {response.text}"
|
|
41
40
|
)
|
|
42
|
-
if response.text:
|
|
43
|
-
click.echo(response.text)
|
|
44
|
-
click.get_current_context().exit(1)
|
|
45
41
|
try:
|
|
46
42
|
available_feeds = [
|
|
47
43
|
feed for feed in response.json() if feed["purpose"] == "Processes"
|
|
48
44
|
]
|
|
49
45
|
return [(feed["name"], feed["id"]) for feed in available_feeds]
|
|
50
46
|
except Exception as e:
|
|
51
|
-
|
|
52
|
-
"❌ Failed to deserialize available feeds.",
|
|
53
|
-
)
|
|
54
|
-
click.echo(e)
|
|
55
|
-
click.get_current_context().exit(1)
|
|
47
|
+
console.error(f"Failed to deserialize available feeds: {str(e)}")
|
|
56
48
|
|
|
57
49
|
|
|
58
50
|
@click.command()
|
|
@@ -71,28 +63,30 @@ def get_available_feeds(
|
|
|
71
63
|
help="Whether to publish to the personal workspace",
|
|
72
64
|
)
|
|
73
65
|
def publish(feed):
|
|
74
|
-
|
|
66
|
+
"""Publish the package."""
|
|
75
67
|
current_path = os.getcwd()
|
|
76
68
|
load_dotenv(os.path.join(current_path, ".env"), override=True)
|
|
69
|
+
|
|
77
70
|
[base_url, token] = get_env_vars()
|
|
78
71
|
headers = {"Authorization": f"Bearer {token}"}
|
|
72
|
+
|
|
79
73
|
if feed is None:
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
74
|
+
with console.spinner("Fetching available package feeds..."):
|
|
75
|
+
available_feeds = get_available_feeds(base_url, headers)
|
|
76
|
+
console.display_options(
|
|
77
|
+
[feed[0] for feed in available_feeds], "Select package feed:"
|
|
78
|
+
)
|
|
79
|
+
feed_idx = console.prompt("Select feed number", type=int)
|
|
85
80
|
if feed_idx < 0:
|
|
86
|
-
|
|
87
|
-
click.get_current_context().exit(1)
|
|
81
|
+
console.error("Invalid feed selected")
|
|
88
82
|
try:
|
|
89
83
|
selected_feed = available_feeds[feed_idx]
|
|
90
84
|
feed = selected_feed[1]
|
|
85
|
+
console.info(
|
|
86
|
+
f"Selected feed: {click.style(str(selected_feed[0]), fg='cyan')}"
|
|
87
|
+
)
|
|
91
88
|
except IndexError:
|
|
92
|
-
|
|
93
|
-
click.get_current_context().exit(1)
|
|
94
|
-
|
|
95
|
-
click.echo(f"Selected feed: {click.style(str(selected_feed[0]), fg='cyan')}")
|
|
89
|
+
console.error("Invalid feed selected")
|
|
96
90
|
|
|
97
91
|
os.makedirs(".uipath", exist_ok=True)
|
|
98
92
|
|
|
@@ -100,64 +94,59 @@ def publish(feed):
|
|
|
100
94
|
most_recent = get_most_recent_package()
|
|
101
95
|
|
|
102
96
|
if not most_recent:
|
|
103
|
-
|
|
104
|
-
click.echo("❌ Error: No package files found in .uipath directory")
|
|
105
|
-
raise click.Abort()
|
|
106
|
-
|
|
107
|
-
spinner.start(f"Publishing most recent package: {most_recent}")
|
|
97
|
+
console.error("No .nupkg files found. Please run `uipath pack` first.")
|
|
108
98
|
|
|
109
|
-
package_to_publish_path = os.path.join(".uipath", most_recent)
|
|
110
|
-
|
|
111
|
-
url = f"{base_url}/orchestrator_/odata/Processes/UiPath.Server.Configuration.OData.UploadPackage()"
|
|
112
99
|
is_personal_workspace = False
|
|
113
100
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
get_personal_workspace_info(base_url, token, spinner)
|
|
118
|
-
)
|
|
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
|
|
101
|
+
with console.spinner(f"Publishing most recent package: {most_recent} ..."):
|
|
102
|
+
package_to_publish_path = os.path.join(".uipath", most_recent)
|
|
103
|
+
url = f"{base_url}/orchestrator_/odata/Processes/UiPath.Server.Configuration.OData.UploadPackage()"
|
|
124
104
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
105
|
+
if feed and feed != "tenant":
|
|
106
|
+
# Check user personal workspace
|
|
107
|
+
personal_workspace_feed_id, personal_workspace_folder_id = (
|
|
108
|
+
get_personal_workspace_info(base_url, token)
|
|
109
|
+
)
|
|
110
|
+
if feed == "personal" or feed == personal_workspace_feed_id:
|
|
111
|
+
is_personal_workspace = True
|
|
112
|
+
if (
|
|
113
|
+
personal_workspace_feed_id is None
|
|
114
|
+
or personal_workspace_folder_id is None
|
|
115
|
+
):
|
|
116
|
+
console.error(
|
|
117
|
+
"No personal workspace found for user. Please try reauthenticating."
|
|
118
|
+
)
|
|
119
|
+
url = url + "?feedId=" + personal_workspace_feed_id
|
|
120
|
+
else:
|
|
121
|
+
url = url + "?feedId=" + feed
|
|
128
122
|
|
|
129
|
-
|
|
123
|
+
with open(package_to_publish_path, "rb") as f:
|
|
124
|
+
files = {"file": (package_to_publish_path, f, "application/octet-stream")}
|
|
125
|
+
response = requests.post(url, headers=headers, files=files)
|
|
130
126
|
|
|
131
127
|
if response.status_code == 200:
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
)
|
|
128
|
+
console.success("Package published successfully!")
|
|
129
|
+
|
|
135
130
|
if is_personal_workspace:
|
|
136
131
|
try:
|
|
137
132
|
data = json.loads(response.text)
|
|
138
133
|
package_name = json.loads(data["value"][0]["Body"])["Id"]
|
|
139
134
|
except json.decoder.JSONDecodeError:
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
if release_id:
|
|
146
|
-
process_url = f"{base_url}/orchestrator_/processes/{release_id}/edit?fid={personal_workspace_folder_id}"
|
|
147
|
-
click.echo(
|
|
148
|
-
"🔧 Configure your process: "
|
|
149
|
-
+ click.style(
|
|
150
|
-
f"\u001b]8;;{process_url}\u001b\\{process_url}\u001b]8;;\u001b\\",
|
|
151
|
-
fg="bright_blue",
|
|
152
|
-
bold=True,
|
|
135
|
+
console.warning("Failed to deserialize package name")
|
|
136
|
+
if package_name is not None:
|
|
137
|
+
with console.spinner("Getting process information ..."):
|
|
138
|
+
release_id, _ = get_release_info(
|
|
139
|
+
base_url, token, package_name, personal_workspace_feed_id
|
|
153
140
|
)
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
"
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
141
|
+
if release_id:
|
|
142
|
+
process_url = f"{base_url}/orchestrator_/processes/{release_id}/edit?fid={personal_workspace_folder_id}"
|
|
143
|
+
console.link("Process configuration link:", process_url)
|
|
144
|
+
console.hint(
|
|
145
|
+
"Use the link above to configure any environment variables"
|
|
146
|
+
)
|
|
147
|
+
else:
|
|
148
|
+
console.warning("Failed to compose process url")
|
|
160
149
|
else:
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
150
|
+
console.error(
|
|
151
|
+
f"Failed to publish package. Status code: {response.status_code} {response.text}"
|
|
152
|
+
)
|
uipath/_cli/cli_run.py
CHANGED
|
@@ -104,7 +104,7 @@ Usage: `uipath run <entrypoint_path> <input_arguments>`""",
|
|
|
104
104
|
@click.argument("input", required=False, default="{}")
|
|
105
105
|
@click.option("--resume", is_flag=True, help="Resume execution from a previous state")
|
|
106
106
|
def run(entrypoint: Optional[str], input: Optional[str], resume: bool) -> None:
|
|
107
|
-
"""Execute
|
|
107
|
+
"""Execute the project."""
|
|
108
108
|
# Process through middleware chain
|
|
109
109
|
result = Middlewares.next("run", entrypoint, input, resume)
|
|
110
110
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: uipath
|
|
3
|
-
Version: 2.0.
|
|
3
|
+
Version: 2.0.27
|
|
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
|
|
@@ -6,20 +6,20 @@ 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
8
|
uipath/_cli/__init__.py,sha256=vGz3vJHkUvgK9_lKdzqiwwHkge1TCALRiOzGGwyr-8E,1885
|
|
9
|
-
uipath/_cli/cli_auth.py,sha256=
|
|
10
|
-
uipath/_cli/cli_deploy.py,sha256=
|
|
11
|
-
uipath/_cli/cli_init.py,sha256=
|
|
12
|
-
uipath/_cli/cli_invoke.py,sha256=
|
|
13
|
-
uipath/_cli/cli_new.py,sha256=
|
|
14
|
-
uipath/_cli/cli_pack.py,sha256=
|
|
15
|
-
uipath/_cli/cli_publish.py,sha256=
|
|
16
|
-
uipath/_cli/cli_run.py,sha256=
|
|
9
|
+
uipath/_cli/cli_auth.py,sha256=HYai-JU2uFDMYdLPdi75xKjAGQkcuqDZBwibXQwiM2s,3461
|
|
10
|
+
uipath/_cli/cli_deploy.py,sha256=lnGwwhDDY6La0fj_-duqx9saGUvY2iNNW28rQCI3hsU,308
|
|
11
|
+
uipath/_cli/cli_init.py,sha256=94lEeDKKhlfPerEIC7lWZdcTyauZ9q1gslwExj4SSG4,3826
|
|
12
|
+
uipath/_cli/cli_invoke.py,sha256=Fnoc5_4nWxac-FVxQL-Akrqd-yQb9BwLWSzR9p397Lw,3221
|
|
13
|
+
uipath/_cli/cli_new.py,sha256=uBWt44ZnNrq6oMYjYm4cCipmat2GRkcJ-g8YP_yP9-0,2024
|
|
14
|
+
uipath/_cli/cli_pack.py,sha256=FZr7P5WZvPkrP56fjn4dTONv76NuoEhVtQwzG3CxGQs,14667
|
|
15
|
+
uipath/_cli/cli_publish.py,sha256=qhuYQq8kogUbCDd-x7_vV4Px8t-0UeAjm96lE7KQBHM,5679
|
|
16
|
+
uipath/_cli/cli_run.py,sha256=BSVx4fLJnBgpqK1VoRbSvpA_o4N0IbxQCU3fNmyry8I,4577
|
|
17
17
|
uipath/_cli/middlewares.py,sha256=IiJgjsqrJVKSXx4RcIKHWoH-SqWqpHPbhzkQEybmAos,3937
|
|
18
18
|
uipath/_cli/spinner.py,sha256=bS-U_HA5yne11ejUERu7CQoXmWdabUD2bm62EfEdV8M,1107
|
|
19
|
-
uipath/_cli/_auth/_auth_server.py,sha256=
|
|
19
|
+
uipath/_cli/_auth/_auth_server.py,sha256=GRdjXUcvZO2O2GecolFJ8uMv7_DUD_VXeBJpElqmtIQ,7034
|
|
20
20
|
uipath/_cli/_auth/_models.py,sha256=sYMCfvmprIqnZxStlD_Dxx2bcxgn0Ri4D7uwemwkcNg,948
|
|
21
21
|
uipath/_cli/_auth/_oidc_utils.py,sha256=WaX9jDlXrlX6yD8i8gsocV8ngjaT72Xd1tvsZMmSbco,2127
|
|
22
|
-
uipath/_cli/_auth/_portal_service.py,sha256=
|
|
22
|
+
uipath/_cli/_auth/_portal_service.py,sha256=7_UtCuyKPxPQu55TPRsG3ioMPfo_Fbx_1Ml-uJ-OP_w,6333
|
|
23
23
|
uipath/_cli/_auth/_utils.py,sha256=9nb76xe5XmDZ0TAncp-_1SKqL6FdwRi9eS3C2noN1lY,1591
|
|
24
24
|
uipath/_cli/_auth/auth_config.json,sha256=NTb_ZZor5xEgya2QbK51GiTL5_yVqG_QpV4VYIp8_mk,342
|
|
25
25
|
uipath/_cli/_auth/index.html,sha256=ML_xDOcKs0ETYucufJskiYfWSvdrD_E26C0Qd3qpGj8,6280
|
|
@@ -34,10 +34,11 @@ uipath/_cli/_templates/[Content_Types].xml.template,sha256=bYsKDz31PkIF9QksjgAY_
|
|
|
34
34
|
uipath/_cli/_templates/main.py.template,sha256=QB62qX5HKDbW4lFskxj7h9uuxBITnTWqu_DE6asCwcU,476
|
|
35
35
|
uipath/_cli/_templates/package.nuspec.template,sha256=YZyLc-u_EsmIoKf42JsLQ55OGeFmb8VkIU2VF7DFbtw,359
|
|
36
36
|
uipath/_cli/_utils/_common.py,sha256=h0-lvaAzz-4iM7WuEqZhlTo5QadBpsQyAdlggx73-PA,1123
|
|
37
|
-
uipath/_cli/_utils/
|
|
37
|
+
uipath/_cli/_utils/_console.py,sha256=rj4V3yeR1wnJzFTHnaE6wcY9OoJV-PiIQnLg_p62ClQ,6664
|
|
38
|
+
uipath/_cli/_utils/_folders.py,sha256=-JilzZ4DM-nvpRkgaKZyV_xm1vq_8Ul9hRgOJ2yJJ5w,916
|
|
38
39
|
uipath/_cli/_utils/_input_args.py,sha256=pyQhEcQXHdFHYTVNzvfWp439aii5StojoptnmCv5lfs,4094
|
|
39
40
|
uipath/_cli/_utils/_parse_ast.py,sha256=3XVjnhJNnSfjXlitct91VOtqSl0l-sqDpoWww28mMc0,20663
|
|
40
|
-
uipath/_cli/_utils/_processes.py,sha256=
|
|
41
|
+
uipath/_cli/_utils/_processes.py,sha256=3EPrGqIFWohnbIZ9xLylgWRRHaYaOPBRB1WfLu6tceY,1353
|
|
41
42
|
uipath/_services/__init__.py,sha256=VPbwLDsvN26nWZgvR-8_-tc3i0rk5doqjTJbSrK0nN4,818
|
|
42
43
|
uipath/_services/_base_service.py,sha256=3YClCoZBkVQGNJZGy-4NTk-HGsGA61XtwVQFYv9mwWk,7955
|
|
43
44
|
uipath/_services/actions_service.py,sha256=RNrR6v42ivpSLtv1W4ctqittScMr9pFUHl9CKOn7tdU,15795
|
|
@@ -77,8 +78,8 @@ uipath/tracing/__init__.py,sha256=GimSzv6qkCOlHOG1WtjYKJsZqcXpA28IgoXfR33JhiA,13
|
|
|
77
78
|
uipath/tracing/_otel_exporters.py,sha256=x0PDPmDKJcxashsuehVsSsqBCzRr6WsNFaq_3_HS5F0,3014
|
|
78
79
|
uipath/tracing/_traced.py,sha256=GFxOp73jk0vGTN_H7YZOOsEl9rVLaEhXGztMiYKIA-8,16634
|
|
79
80
|
uipath/tracing/_utils.py,sha256=5SwsTGpHkIouXBndw-u8eCLnN4p7LM8DsTCCuf2jJgs,10165
|
|
80
|
-
uipath-2.0.
|
|
81
|
-
uipath-2.0.
|
|
82
|
-
uipath-2.0.
|
|
83
|
-
uipath-2.0.
|
|
84
|
-
uipath-2.0.
|
|
81
|
+
uipath-2.0.27.dist-info/METADATA,sha256=6haVZ7k0TSaBU-GTow-z4yvtAlNKiB0rnL3He5IHWpY,6106
|
|
82
|
+
uipath-2.0.27.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
83
|
+
uipath-2.0.27.dist-info/entry_points.txt,sha256=9C2_29U6Oq1ExFu7usihR-dnfIVNSKc-0EFbh0rskB4,43
|
|
84
|
+
uipath-2.0.27.dist-info/licenses/LICENSE,sha256=-KBavWXepyDjimmzH5fVAsi-6jNVpIKFc2kZs0Ri4ng,1058
|
|
85
|
+
uipath-2.0.27.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|