tower 0.3.4__py3-none-linux_armv6l.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.
Files changed (156) hide show
  1. tower/__init__.py +4 -0
  2. tower/__main__.py +38 -0
  3. tower/client.py +115 -0
  4. tower/tower_api_client/__init__.py +7 -0
  5. tower/tower_api_client/api/__init__.py +1 -0
  6. tower/tower_api_client/api/default/__init__.py +0 -0
  7. tower/tower_api_client/api/default/accept_invitation.py +150 -0
  8. tower/tower_api_client/api/default/cancel_run.py +159 -0
  9. tower/tower_api_client/api/default/claim_device_login_ticket.py +154 -0
  10. tower/tower_api_client/api/default/create_account.py +150 -0
  11. tower/tower_api_client/api/default/create_api_key.py +142 -0
  12. tower/tower_api_client/api/default/create_apps.py +150 -0
  13. tower/tower_api_client/api/default/create_device_login_ticket.py +131 -0
  14. tower/tower_api_client/api/default/create_secret.py +150 -0
  15. tower/tower_api_client/api/default/create_session.py +150 -0
  16. tower/tower_api_client/api/default/create_team.py +150 -0
  17. tower/tower_api_client/api/default/delete_api_key.py +142 -0
  18. tower/tower_api_client/api/default/delete_app.py +146 -0
  19. tower/tower_api_client/api/default/delete_secret.py +104 -0
  20. tower/tower_api_client/api/default/delete_team.py +150 -0
  21. tower/tower_api_client/api/default/delete_team_invitation.py +167 -0
  22. tower/tower_api_client/api/default/deploy_app.py +166 -0
  23. tower/tower_api_client/api/default/describe_app.py +165 -0
  24. tower/tower_api_client/api/default/describe_app_version.py +163 -0
  25. tower/tower_api_client/api/default/describe_device_login_session.py +154 -0
  26. tower/tower_api_client/api/default/describe_run.py +172 -0
  27. tower/tower_api_client/api/default/describe_secrets_key.py +160 -0
  28. tower/tower_api_client/api/default/describe_session.py +125 -0
  29. tower/tower_api_client/api/default/export_secrets.py +218 -0
  30. tower/tower_api_client/api/default/generate_app_statistics.py +129 -0
  31. tower/tower_api_client/api/default/generate_run_statistics.py +160 -0
  32. tower/tower_api_client/api/default/get_app_run_logs.py +159 -0
  33. tower/tower_api_client/api/default/invite_team_member.py +163 -0
  34. tower/tower_api_client/api/default/leave_team.py +150 -0
  35. tower/tower_api_client/api/default/list_api_keys.py +125 -0
  36. tower/tower_api_client/api/default/list_app_environments.py +150 -0
  37. tower/tower_api_client/api/default/list_app_versions.py +146 -0
  38. tower/tower_api_client/api/default/list_apps.py +247 -0
  39. tower/tower_api_client/api/default/list_my_team_invitations.py +129 -0
  40. tower/tower_api_client/api/default/list_runs.py +184 -0
  41. tower/tower_api_client/api/default/list_secret_environments.py +129 -0
  42. tower/tower_api_client/api/default/list_secrets.py +201 -0
  43. tower/tower_api_client/api/default/list_team_invitations.py +150 -0
  44. tower/tower_api_client/api/default/list_team_members.py +146 -0
  45. tower/tower_api_client/api/default/list_teams.py +125 -0
  46. tower/tower_api_client/api/default/refresh_session.py +129 -0
  47. tower/tower_api_client/api/default/remove_team_member.py +163 -0
  48. tower/tower_api_client/api/default/resend_team_invitation.py +167 -0
  49. tower/tower_api_client/api/default/run_app.py +176 -0
  50. tower/tower_api_client/api/default/stream_app_run_logs.py +100 -0
  51. tower/tower_api_client/api/default/update_account_slug.py +163 -0
  52. tower/tower_api_client/api/default/update_my_team_invitation.py +154 -0
  53. tower/tower_api_client/api/default/update_team.py +167 -0
  54. tower/tower_api_client/api/default/update_user.py +150 -0
  55. tower/tower_api_client/client.py +51 -0
  56. tower/tower_api_client/models/__init__.py +193 -0
  57. tower/tower_api_client/models/accept_invitation_params.py +49 -0
  58. tower/tower_api_client/models/accept_invitation_response.py +56 -0
  59. tower/tower_api_client/models/account.py +45 -0
  60. tower/tower_api_client/models/api_key.py +67 -0
  61. tower/tower_api_client/models/app.py +122 -0
  62. tower/tower_api_client/models/app_statistics.py +66 -0
  63. tower/tower_api_client/models/app_summary.py +81 -0
  64. tower/tower_api_client/models/app_version.py +71 -0
  65. tower/tower_api_client/models/cancel_run_response.py +56 -0
  66. tower/tower_api_client/models/claim_device_login_ticket_params.py +49 -0
  67. tower/tower_api_client/models/claim_device_login_ticket_response.py +49 -0
  68. tower/tower_api_client/models/create_account_params.py +91 -0
  69. tower/tower_api_client/models/create_account_params_flags_struct.py +38 -0
  70. tower/tower_api_client/models/create_account_response.py +56 -0
  71. tower/tower_api_client/models/create_api_key_params.py +49 -0
  72. tower/tower_api_client/models/create_api_key_response.py +56 -0
  73. tower/tower_api_client/models/create_app_params.py +57 -0
  74. tower/tower_api_client/models/create_app_response.py +56 -0
  75. tower/tower_api_client/models/create_device_login_ticket_response.py +94 -0
  76. tower/tower_api_client/models/create_secret_params.py +70 -0
  77. tower/tower_api_client/models/create_secret_response.py +56 -0
  78. tower/tower_api_client/models/create_session_params.py +56 -0
  79. tower/tower_api_client/models/create_session_response.py +56 -0
  80. tower/tower_api_client/models/create_team_params.py +56 -0
  81. tower/tower_api_client/models/create_team_response.py +56 -0
  82. tower/tower_api_client/models/delete_api_key_params.py +49 -0
  83. tower/tower_api_client/models/delete_api_key_response.py +56 -0
  84. tower/tower_api_client/models/delete_app_response.py +56 -0
  85. tower/tower_api_client/models/delete_team_invitation_params.py +49 -0
  86. tower/tower_api_client/models/delete_team_invitation_response.py +56 -0
  87. tower/tower_api_client/models/delete_team_params.py +49 -0
  88. tower/tower_api_client/models/delete_team_response.py +56 -0
  89. tower/tower_api_client/models/deploy_app_response.py +56 -0
  90. tower/tower_api_client/models/describe_app_response.py +75 -0
  91. tower/tower_api_client/models/describe_app_version_response.py +56 -0
  92. tower/tower_api_client/models/describe_device_login_session_response.py +56 -0
  93. tower/tower_api_client/models/describe_run_response.py +56 -0
  94. tower/tower_api_client/models/describe_secrets_key_response.py +49 -0
  95. tower/tower_api_client/models/describe_session_response.py +56 -0
  96. tower/tower_api_client/models/error_detail.py +54 -0
  97. tower/tower_api_client/models/error_model.py +109 -0
  98. tower/tower_api_client/models/export_secrets_response.py +75 -0
  99. tower/tower_api_client/models/export_user_secrets_params.py +49 -0
  100. tower/tower_api_client/models/exported_secret.py +62 -0
  101. tower/tower_api_client/models/generate_app_statistics_response.py +56 -0
  102. tower/tower_api_client/models/generate_run_statistics_response.py +85 -0
  103. tower/tower_api_client/models/get_run_log_line.py +47 -0
  104. tower/tower_api_client/models/get_run_logs_output_body.py +65 -0
  105. tower/tower_api_client/models/invite_team_member_params.py +58 -0
  106. tower/tower_api_client/models/invite_team_member_response.py +65 -0
  107. tower/tower_api_client/models/leave_team_response.py +56 -0
  108. tower/tower_api_client/models/list_api_keys_response.py +65 -0
  109. tower/tower_api_client/models/list_app_environments_response.py +50 -0
  110. tower/tower_api_client/models/list_app_versions_response.py +65 -0
  111. tower/tower_api_client/models/list_apps_response.py +75 -0
  112. tower/tower_api_client/models/list_apps_status_item.py +11 -0
  113. tower/tower_api_client/models/list_my_team_invitations_response.py +65 -0
  114. tower/tower_api_client/models/list_runs_response.py +75 -0
  115. tower/tower_api_client/models/list_secret_environments_response.py +50 -0
  116. tower/tower_api_client/models/list_secrets_response.py +75 -0
  117. tower/tower_api_client/models/list_team_invitations_response.py +65 -0
  118. tower/tower_api_client/models/list_team_members_response.py +65 -0
  119. tower/tower_api_client/models/list_teams_response.py +65 -0
  120. tower/tower_api_client/models/log_line.py +62 -0
  121. tower/tower_api_client/models/log_line_error.py +47 -0
  122. tower/tower_api_client/models/pagination.py +59 -0
  123. tower/tower_api_client/models/parameter.py +52 -0
  124. tower/tower_api_client/models/refresh_session_response.py +66 -0
  125. tower/tower_api_client/models/remove_team_member_params.py +49 -0
  126. tower/tower_api_client/models/remove_team_member_response.py +56 -0
  127. tower/tower_api_client/models/resend_team_invitation_params.py +57 -0
  128. tower/tower_api_client/models/resend_team_invitation_response.py +56 -0
  129. tower/tower_api_client/models/run.py +129 -0
  130. tower/tower_api_client/models/run_app_params.py +72 -0
  131. tower/tower_api_client/models/run_app_params_parameters.py +43 -0
  132. tower/tower_api_client/models/run_app_response.py +56 -0
  133. tower/tower_api_client/models/run_results.py +73 -0
  134. tower/tower_api_client/models/run_statistics.py +52 -0
  135. tower/tower_api_client/models/secret.py +62 -0
  136. tower/tower_api_client/models/series_point.py +52 -0
  137. tower/tower_api_client/models/session.py +73 -0
  138. tower/tower_api_client/models/statistics_settings.py +38 -0
  139. tower/tower_api_client/models/team.py +75 -0
  140. tower/tower_api_client/models/team_invitation.py +61 -0
  141. tower/tower_api_client/models/token.py +38 -0
  142. tower/tower_api_client/models/update_account_slug_params.py +49 -0
  143. tower/tower_api_client/models/update_account_slug_response.py +56 -0
  144. tower/tower_api_client/models/update_my_team_invitation_params.py +56 -0
  145. tower/tower_api_client/models/update_my_team_invitation_response.py +39 -0
  146. tower/tower_api_client/models/update_team_params.py +58 -0
  147. tower/tower_api_client/models/update_team_response.py +56 -0
  148. tower/tower_api_client/models/update_user_params.py +71 -0
  149. tower/tower_api_client/models/update_user_response.py +56 -0
  150. tower/tower_api_client/models/user.py +90 -0
  151. tower/tower_api_client/types.py +44 -0
  152. tower-0.3.4.data/scripts/tower +0 -0
  153. tower-0.3.4.dist-info/METADATA +115 -0
  154. tower-0.3.4.dist-info/RECORD +156 -0
  155. tower-0.3.4.dist-info/WHEEL +4 -0
  156. tower-0.3.4.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,58 @@
1
+ from typing import Any, Dict, Optional, Type, TypeVar, Union
2
+
3
+ import attr
4
+
5
+ from ..types import UNSET, Unset
6
+
7
+ T = TypeVar("T", bound="UpdateTeamParams")
8
+
9
+
10
+ @attr.s(auto_attribs=True)
11
+ class UpdateTeamParams:
12
+ """
13
+ Attributes:
14
+ schema (Union[Unset, str]): A URL to the JSON Schema for this object. Example:
15
+ http://localhost:8081/v1/schemas/UpdateTeamParams.json.
16
+ name (Optional[str]): The name of the team to create. This is optional, if you supply null it will not update
17
+ the team name.
18
+ slug (Optional[str]): The new slug that you want the team to use. This is optional, if you supply null it will
19
+ not update the slug.
20
+ """
21
+
22
+ name: Optional[str]
23
+ slug: Optional[str]
24
+ schema: Union[Unset, str] = UNSET
25
+
26
+ def to_dict(self) -> Dict[str, Any]:
27
+ schema = self.schema
28
+ name = self.name
29
+ slug = self.slug
30
+
31
+ field_dict: Dict[str, Any] = {}
32
+ field_dict.update(
33
+ {
34
+ "name": name,
35
+ "slug": slug,
36
+ }
37
+ )
38
+ if schema is not UNSET:
39
+ field_dict["$schema"] = schema
40
+
41
+ return field_dict
42
+
43
+ @classmethod
44
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
45
+ d = src_dict.copy()
46
+ schema = d.pop("$schema", UNSET)
47
+
48
+ name = d.pop("name")
49
+
50
+ slug = d.pop("slug")
51
+
52
+ update_team_params = cls(
53
+ schema=schema,
54
+ name=name,
55
+ slug=slug,
56
+ )
57
+
58
+ return update_team_params
@@ -0,0 +1,56 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, Type, TypeVar, Union
2
+
3
+ import attr
4
+
5
+ from ..types import UNSET, Unset
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.team import Team
9
+
10
+
11
+ T = TypeVar("T", bound="UpdateTeamResponse")
12
+
13
+
14
+ @attr.s(auto_attribs=True)
15
+ class UpdateTeamResponse:
16
+ """
17
+ Attributes:
18
+ team (Team):
19
+ schema (Union[Unset, str]): A URL to the JSON Schema for this object. Example:
20
+ http://localhost:8081/v1/schemas/UpdateTeamResponse.json.
21
+ """
22
+
23
+ team: "Team"
24
+ schema: Union[Unset, str] = UNSET
25
+
26
+ def to_dict(self) -> Dict[str, Any]:
27
+ team = self.team.to_dict()
28
+
29
+ schema = self.schema
30
+
31
+ field_dict: Dict[str, Any] = {}
32
+ field_dict.update(
33
+ {
34
+ "team": team,
35
+ }
36
+ )
37
+ if schema is not UNSET:
38
+ field_dict["$schema"] = schema
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44
+ from ..models.team import Team
45
+
46
+ d = src_dict.copy()
47
+ team = Team.from_dict(d.pop("team"))
48
+
49
+ schema = d.pop("$schema", UNSET)
50
+
51
+ update_team_response = cls(
52
+ team=team,
53
+ schema=schema,
54
+ )
55
+
56
+ return update_team_response
@@ -0,0 +1,71 @@
1
+ from typing import Any, Dict, Type, TypeVar, Union
2
+
3
+ import attr
4
+
5
+ from ..types import UNSET, Unset
6
+
7
+ T = TypeVar("T", bound="UpdateUserParams")
8
+
9
+
10
+ @attr.s(auto_attribs=True)
11
+ class UpdateUserParams:
12
+ """
13
+ Attributes:
14
+ schema (Union[Unset, str]): A URL to the JSON Schema for this object. Example:
15
+ http://localhost:8081/v1/schemas/UpdateUserParams.json.
16
+ company (Union[Unset, None, str]):
17
+ country (Union[Unset, None, str]):
18
+ first_name (Union[Unset, None, str]):
19
+ last_name (Union[Unset, None, str]):
20
+ """
21
+
22
+ schema: Union[Unset, str] = UNSET
23
+ company: Union[Unset, None, str] = UNSET
24
+ country: Union[Unset, None, str] = UNSET
25
+ first_name: Union[Unset, None, str] = UNSET
26
+ last_name: Union[Unset, None, str] = UNSET
27
+
28
+ def to_dict(self) -> Dict[str, Any]:
29
+ schema = self.schema
30
+ company = self.company
31
+ country = self.country
32
+ first_name = self.first_name
33
+ last_name = self.last_name
34
+
35
+ field_dict: Dict[str, Any] = {}
36
+ field_dict.update({})
37
+ if schema is not UNSET:
38
+ field_dict["$schema"] = schema
39
+ if company is not UNSET:
40
+ field_dict["company"] = company
41
+ if country is not UNSET:
42
+ field_dict["country"] = country
43
+ if first_name is not UNSET:
44
+ field_dict["first_name"] = first_name
45
+ if last_name is not UNSET:
46
+ field_dict["last_name"] = last_name
47
+
48
+ return field_dict
49
+
50
+ @classmethod
51
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
52
+ d = src_dict.copy()
53
+ schema = d.pop("$schema", UNSET)
54
+
55
+ company = d.pop("company", UNSET)
56
+
57
+ country = d.pop("country", UNSET)
58
+
59
+ first_name = d.pop("first_name", UNSET)
60
+
61
+ last_name = d.pop("last_name", UNSET)
62
+
63
+ update_user_params = cls(
64
+ schema=schema,
65
+ company=company,
66
+ country=country,
67
+ first_name=first_name,
68
+ last_name=last_name,
69
+ )
70
+
71
+ return update_user_params
@@ -0,0 +1,56 @@
1
+ from typing import TYPE_CHECKING, Any, Dict, Type, TypeVar, Union
2
+
3
+ import attr
4
+
5
+ from ..types import UNSET, Unset
6
+
7
+ if TYPE_CHECKING:
8
+ from ..models.user import User
9
+
10
+
11
+ T = TypeVar("T", bound="UpdateUserResponse")
12
+
13
+
14
+ @attr.s(auto_attribs=True)
15
+ class UpdateUserResponse:
16
+ """
17
+ Attributes:
18
+ user (User):
19
+ schema (Union[Unset, str]): A URL to the JSON Schema for this object. Example:
20
+ http://localhost:8081/v1/schemas/UpdateUserResponse.json.
21
+ """
22
+
23
+ user: "User"
24
+ schema: Union[Unset, str] = UNSET
25
+
26
+ def to_dict(self) -> Dict[str, Any]:
27
+ user = self.user.to_dict()
28
+
29
+ schema = self.schema
30
+
31
+ field_dict: Dict[str, Any] = {}
32
+ field_dict.update(
33
+ {
34
+ "user": user,
35
+ }
36
+ )
37
+ if schema is not UNSET:
38
+ field_dict["$schema"] = schema
39
+
40
+ return field_dict
41
+
42
+ @classmethod
43
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
44
+ from ..models.user import User
45
+
46
+ d = src_dict.copy()
47
+ user = User.from_dict(d.pop("user"))
48
+
49
+ schema = d.pop("$schema", UNSET)
50
+
51
+ update_user_response = cls(
52
+ user=user,
53
+ schema=schema,
54
+ )
55
+
56
+ return update_user_response
@@ -0,0 +1,90 @@
1
+ import datetime
2
+ from typing import Any, Dict, Type, TypeVar
3
+
4
+ import attr
5
+ from dateutil.parser import isoparse
6
+
7
+ T = TypeVar("T", bound="User")
8
+
9
+
10
+ @attr.s(auto_attribs=True)
11
+ class User:
12
+ """
13
+ Attributes:
14
+ company (str):
15
+ country (str):
16
+ created_at (datetime.datetime):
17
+ email (str):
18
+ first_name (str):
19
+ is_invitation_claimed (bool):
20
+ last_name (str):
21
+ profile_photo_url (str):
22
+ """
23
+
24
+ company: str
25
+ country: str
26
+ created_at: datetime.datetime
27
+ email: str
28
+ first_name: str
29
+ is_invitation_claimed: bool
30
+ last_name: str
31
+ profile_photo_url: str
32
+
33
+ def to_dict(self) -> Dict[str, Any]:
34
+ company = self.company
35
+ country = self.country
36
+ created_at = self.created_at.isoformat()
37
+
38
+ email = self.email
39
+ first_name = self.first_name
40
+ is_invitation_claimed = self.is_invitation_claimed
41
+ last_name = self.last_name
42
+ profile_photo_url = self.profile_photo_url
43
+
44
+ field_dict: Dict[str, Any] = {}
45
+ field_dict.update(
46
+ {
47
+ "company": company,
48
+ "country": country,
49
+ "created_at": created_at,
50
+ "email": email,
51
+ "first_name": first_name,
52
+ "is_invitation_claimed": is_invitation_claimed,
53
+ "last_name": last_name,
54
+ "profile_photo_url": profile_photo_url,
55
+ }
56
+ )
57
+
58
+ return field_dict
59
+
60
+ @classmethod
61
+ def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
62
+ d = src_dict.copy()
63
+ company = d.pop("company")
64
+
65
+ country = d.pop("country")
66
+
67
+ created_at = isoparse(d.pop("created_at"))
68
+
69
+ email = d.pop("email")
70
+
71
+ first_name = d.pop("first_name")
72
+
73
+ is_invitation_claimed = d.pop("is_invitation_claimed")
74
+
75
+ last_name = d.pop("last_name")
76
+
77
+ profile_photo_url = d.pop("profile_photo_url")
78
+
79
+ user = cls(
80
+ company=company,
81
+ country=country,
82
+ created_at=created_at,
83
+ email=email,
84
+ first_name=first_name,
85
+ is_invitation_claimed=is_invitation_claimed,
86
+ last_name=last_name,
87
+ profile_photo_url=profile_photo_url,
88
+ )
89
+
90
+ return user
@@ -0,0 +1,44 @@
1
+ """ Contains some shared types for properties """
2
+ from http import HTTPStatus
3
+ from typing import BinaryIO, Generic, MutableMapping, Optional, Tuple, TypeVar
4
+
5
+ import attr
6
+
7
+
8
+ class Unset:
9
+ def __bool__(self) -> bool:
10
+ return False
11
+
12
+
13
+ UNSET: Unset = Unset()
14
+
15
+ FileJsonType = Tuple[Optional[str], BinaryIO, Optional[str]]
16
+
17
+
18
+ @attr.s(auto_attribs=True)
19
+ class File:
20
+ """Contains information for file uploads"""
21
+
22
+ payload: BinaryIO
23
+ file_name: Optional[str] = None
24
+ mime_type: Optional[str] = None
25
+
26
+ def to_tuple(self) -> FileJsonType:
27
+ """Return a tuple representation that httpx will accept for multipart/form-data"""
28
+ return self.file_name, self.payload, self.mime_type
29
+
30
+
31
+ T = TypeVar("T")
32
+
33
+
34
+ @attr.s(auto_attribs=True)
35
+ class Response(Generic[T]):
36
+ """A response from an endpoint"""
37
+
38
+ status_code: HTTPStatus
39
+ content: bytes
40
+ headers: MutableMapping[str, str]
41
+ parsed: Optional[T]
42
+
43
+
44
+ __all__ = ["File", "Response", "FileJsonType"]
Binary file
@@ -0,0 +1,115 @@
1
+ Metadata-Version: 2.4
2
+ Name: tower
3
+ Version: 0.3.4
4
+ Classifier: Development Status :: 5 - Production/Stable
5
+ Classifier: Environment :: Console
6
+ Classifier: Intended Audience :: Developers
7
+ Classifier: License :: OSI Approved :: MIT License
8
+ Classifier: Operating System :: OS Independent
9
+ Classifier: Programming Language :: Python
10
+ Classifier: Programming Language :: Python :: 3.7
11
+ Classifier: Programming Language :: Python :: 3.8
12
+ Classifier: Programming Language :: Python :: 3.9
13
+ Classifier: Programming Language :: Python :: 3.10
14
+ Classifier: Programming Language :: Python :: 3.11
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.13
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Classifier: Programming Language :: Rust
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: Topic :: Software Development :: Quality Assurance
21
+ Requires-Dist: attrs>=24.2.0
22
+ Requires-Dist: httpx>=0.23.3
23
+ Requires-Dist: python-dateutil>=2.9.0.post0
24
+ License-File: LICENSE
25
+ Summary: Tower CLI and runtime environment for Tower.
26
+ Keywords: automation,flake8,pycodestyle,pyflakes,pylint,clippy
27
+ Author: Brad Heller <brad@tower.dev>
28
+ Author-email: "Tower Computing Inc." <brad@tower.dev>
29
+ License: MIT
30
+ Requires-Python: >=3.7
31
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
32
+ Project-URL: Source Code, https://github.com/tower/tower-cli
33
+
34
+ # Tower CLI
35
+
36
+ The Tower CLI is one of the main ways to interact with the Tower environment.
37
+ You can do basically everything you need inside the Tower CLI, including run
38
+ your code locally or remotely in the Tower cloud.
39
+
40
+ ## Installing the Tower CLI
41
+
42
+ The main way to install the CLI is using the `pip` package manager.
43
+
44
+ ```bash
45
+ $ pip install -U tower
46
+ ```
47
+
48
+ You can also download the CLI directly from one of our [releases](https://github.com/tower/tower-cli/releases/latest).
49
+
50
+ ## Using the Tower CLI
51
+
52
+ There are two big components in the Tower CLI reposiory: The CLI itself and the
53
+ runtime environment for the Tower cloud. We host the runtime in this repository
54
+ and pull it in to our internal code because we want to ensure that the
55
+ environments behave *exactly the same* locally and in our cloud!
56
+
57
+ ### Using the CLI
58
+
59
+ It's pretty straight forward! But here's what it looks like right now.
60
+
61
+ ```bash
62
+ $ tower
63
+ Tower is a compute platform for modern data projects
64
+
65
+ Usage: tower [OPTIONS] <COMMAND>
66
+
67
+ Commands:
68
+ login Create a session with Tower
69
+ apps Interact with the apps that you own
70
+ secrets Interact with the secrets in your Tower account
71
+ deploy Deploy your latest code to Tower
72
+ run Run your code in Tower or locally
73
+ version Print the current version of Tower
74
+ help Print this message or the help of the given subcommand(s)
75
+
76
+ Options:
77
+ -h, --help Print help
78
+ ```
79
+
80
+ ### About the runtime environment
81
+
82
+ The [tower-runtime](crates/tower-runtime) crate has the Rust library that makes
83
+ up the runtime environment itself. All the interfaces are defined in the main
84
+ crate, and the `local` package contains the invokation logic for invoking tower
85
+ packages locally.
86
+
87
+ To learn more about tower packages, see the
88
+ [tower-package](crates/tower-package) crate.
89
+
90
+ ## Contributing
91
+
92
+ We welcome contributions to the Tower CLI and runtime environment! Please see
93
+ the [CONTRIBUTING.md](CONTRIBUTING.md) file for more information.
94
+
95
+ ### Code of Conduct
96
+
97
+ All contributions must abide by our code of conduct. Please see
98
+ [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) for more information.
99
+
100
+ ## Development
101
+
102
+ Here are a few handy tips and common workflows when developing the Tower CLI.
103
+
104
+ ### Python SDK development
105
+
106
+ We use `uv` for all development. You can spawn a REPL in context using `uv` very
107
+ easily. Then you can `import tower` and you're off to the races!
108
+
109
+ ```bash
110
+ uv run python
111
+ ```
112
+
113
+ If you need to get the latest OpenAPI SDK, you can run
114
+ `./scripts/generate-python-api-client.sh`.
115
+
@@ -0,0 +1,156 @@
1
+ tower-0.3.4.dist-info/METADATA,sha256=f9DC5jFz7lkKnVhKfAHrdn6oJ2e0VJOvxBEudZcMb68,3905
2
+ tower-0.3.4.dist-info/WHEEL,sha256=dU39xPHpDfJSMlnobI5xvNsm2u02uzhoFoqMDYc4HsQ,96
3
+ tower-0.3.4.dist-info/licenses/LICENSE,sha256=_MYR_blXSfnrdAltBE3J2Y97HG7UJlzb741vxp5hIwE,1077
4
+ tower/__main__.py,sha256=p6G5ZSRHq2mCvpCT325jZUXJ69qX1ctYbzWdV6WriJ8,856
5
+ tower/client.py,sha256=CHtlpvtbenVJzv0NYYMxlOFbCVJS3Ajpr6COI8HyeN0,3393
6
+ tower/__init__.py,sha256=Xw-zD9QqSa1f_sHIly2KuBJZAtTbc8QNn8pBllGOakA,55
7
+ tower/tower_api_client/models/accept_invitation_response.py,sha256=lq5SQx46t9q1-bvLIuMbpHg0_WsjdmOKLruJmv6uKsc,1281
8
+ tower/tower_api_client/models/list_my_team_invitations_response.py,sha256=iLrYP3ryGqZBdZokFEG55Mobdjekhu4svtzLP_q66YE,1930
9
+ tower/tower_api_client/models/generate_run_statistics_response.py,sha256=Erwjoq_jkDsylwRMdNksyiZ2-wsATpOyNoqdvwDs8rE,2372
10
+ tower/tower_api_client/models/generate_app_statistics_response.py,sha256=LwYsBxRbCy2zZ5GkIuRq6HS9znoKLH32PL3OuB9pA8U,1433
11
+ tower/tower_api_client/models/update_my_team_invitation_response.py,sha256=hqku-B5Jas0QlzehXbxW1bMW04AlTVnFyV75Z2VNSQ4,997
12
+ tower/tower_api_client/models/delete_api_key_params.py,sha256=W5f49X9L3eLaLfv-2Fd7BnNH7TKVIn5GOSmDvftG6WU,1172
13
+ tower/tower_api_client/models/list_api_keys_response.py,sha256=gBJfJN0EOV5uGDErKxgZL2WbCZTI-zl1FYHJQCE7jAk,1639
14
+ tower/tower_api_client/models/get_run_logs_output_body.py,sha256=FRqkDwQydtRe0KyZSvUBEzbs9PhhynDVOHeJAyicU-k,1704
15
+ tower/tower_api_client/models/parameter.py,sha256=NNYI6EO7eafmhWxl0P6kdZQ7eC6LWb1v_dMhnSR7uWo,1045
16
+ tower/tower_api_client/models/resend_team_invitation_response.py,sha256=jfBhJHst7naXXX9XiTtFn5oQ6eYzxD4mUoDIUYPeQt0,1485
17
+ tower/tower_api_client/models/team_invitation.py,sha256=dFCT97vNwQsNT4aXl0h8bgkpuF4RRLwvH5M5M0fhxkw,1361
18
+ tower/tower_api_client/models/remove_team_member_params.py,sha256=b5wAQcBb81QsJoqAMIh01SCyuD1LCRh3kOU-_wWSukY,1189
19
+ tower/tower_api_client/models/create_app_params.py,sha256=bxxdvL5CuI9MZbyIiS3cKaBH-jleuc_--_f0gtkhVF4,1508
20
+ tower/tower_api_client/models/run_results.py,sha256=8vgIO1RJiDgWxnvxbKD7hIpj8LbjEnIaBBGHEcfyKwU,1567
21
+ tower/tower_api_client/models/resend_team_invitation_params.py,sha256=tHOcmlBegL-xIdIT25R5B0ULFCnRwbginBmn1uLOvJM,1513
22
+ tower/tower_api_client/models/user.py,sha256=esQDfTXvVcPhFn0OZo9e96_6ZT_0SSTm_uqJV9PwKe8,2281
23
+ tower/tower_api_client/models/claim_device_login_ticket_response.py,sha256=zxHI9lSYfKahpZMs94GvonVj--QBmK6LkphHUP-20Qs,1249
24
+ tower/tower_api_client/models/run_app_response.py,sha256=kpn3D8otWigJUAR4d9Sx0CrvdzwQo7TG2rstQrP5-4c,1214
25
+ tower/tower_api_client/models/invite_team_member_response.py,sha256=phtXVpULUY91UCtyX8jyiCkOYKkRvVyYs1OKDmE2sII,1916
26
+ tower/tower_api_client/models/account.py,sha256=fTzgYWm72OIaW44a5IWpqX4YszizZblBJ7xA9zChZUM,795
27
+ tower/tower_api_client/models/list_runs_response.py,sha256=ihURBM1Mm343BzRnUM2d_fgl8xMrBNY0q2kxpmrqoAE,1793
28
+ tower/tower_api_client/models/describe_secrets_key_response.py,sha256=P1zfqw_j-pwfrgwcX0G0XxDcMi8xCW1uNS2FIaH01Ys,1212
29
+ tower/tower_api_client/models/token.py,sha256=ZKNdkvS3PuMtCMq0jJcS8n7wAgPf4tw839UauD1aQhY,635
30
+ tower/tower_api_client/models/update_account_slug_params.py,sha256=KWDbZzbRWaoLTdvuFzwDZ5ONNWS_pfiFLNilPK1ktDA,1206
31
+ tower/tower_api_client/models/update_account_slug_response.py,sha256=2LOBEhZbgnNVV44amsOiMV1T1oQ3xXyLed3kIhkcxC4,1339
32
+ tower/tower_api_client/models/api_key.py,sha256=XXHzeROnoVKeutUT4Qc7ckGSRDLGZcY4z1wBJkPfIt8,1664
33
+ tower/tower_api_client/models/create_api_key_params.py,sha256=TcOs2qU14yvUGJkmbGlNYmw2WqF-KOp49Iqpmnq39zk,1112
34
+ tower/tower_api_client/models/delete_team_response.py,sha256=wBP8XDsXosT0bsShZyA4PG2sp4TEoXdC1H8E5yd5HAI,1251
35
+ tower/tower_api_client/models/list_team_invitations_response.py,sha256=b1Y0P1uJ8HpzoKlkz0ni7v9PvVyNcNWZcrnkz8caIu0,1918
36
+ tower/tower_api_client/models/list_app_environments_response.py,sha256=fTT7Buz_72v1xgyaDet8pRUdHpjxD3VA4OsgIWvIRbA,1279
37
+ tower/tower_api_client/models/create_account_params_flags_struct.py,sha256=Ei1GceqqeUuw38ha063ZK271O02grN15hCb6eGZkWDI,865
38
+ tower/tower_api_client/models/delete_team_invitation_response.py,sha256=fzuv4NUsp044N4YgJgMa_nvuW9JJ4XINuOVnS9d4uMM,1435
39
+ tower/tower_api_client/models/create_account_params.py,sha256=3BJAq9vTNsn85VB02SKXPM3bqWLbJwwGEFtRXCFGN_g,2207
40
+ tower/tower_api_client/models/app.py,sha256=QzUDhJv6QZHvACZ2YD84rfGNqbWB0n5bj4cgETW1BsY,3549
41
+ tower/tower_api_client/models/run_app_params.py,sha256=tvfYm1bnBPAP8GvZCn-qSH6pr9o982ZWvJ1xCPTnSe4,2124
42
+ tower/tower_api_client/models/list_team_members_response.py,sha256=lvQKjjiYvtWqNrbvAB_qSvc9n9HGhB11FAkVFrx-D5s,1743
43
+ tower/tower_api_client/models/delete_app_response.py,sha256=hrm9-kl9CYnz0Un1w7iiMA7nRAeniJnL-9v9WQ5NhMM,1229
44
+ tower/tower_api_client/models/error_model.py,sha256=pu-3eOPHSz98_g9Y4VDZcKvRItw7mRsUp9iBi5buHVY,3596
45
+ tower/tower_api_client/models/list_secret_environments_response.py,sha256=9dwCN4j0BeJQFJpU0dTVYYZ_bmOP0gMX25wA59Z7jb8,1294
46
+ tower/tower_api_client/models/get_run_log_line.py,sha256=xevfrWSnD1QgE6vmTVQRQZiY5R_jAz2N9LrKgexCmhA,1008
47
+ tower/tower_api_client/models/update_team_params.py,sha256=j9RRj8uVtdSBxDZ83R6SJw67nKeSaLuP4J4uzqG9TRQ,1529
48
+ tower/tower_api_client/models/create_app_response.py,sha256=2W-kFnmOwpdOYN03SccWfOzG58vvwkZmlBLyg7vNuYM,1229
49
+ tower/tower_api_client/models/app_version.py,sha256=_cYzDDlcJKyPqOb8vnfgedAF0luOH_uzhNFgmpcKpnc,1713
50
+ tower/tower_api_client/models/app_summary.py,sha256=e7hmUE8c-VpnH5gCC1DAUeYJXEjPf778qg4gxWdg62M,1854
51
+ tower/tower_api_client/models/pagination.py,sha256=JHX7s-cAZkYQtBhWw63cVKz-y2Sq7TIrdGLpMG4X99I,1201
52
+ tower/tower_api_client/models/list_apps_status_item.py,sha256=WuPfNhklc8yhSZu_3CTBLCaEGs6vexoo_AX5JZHKZgE,217
53
+ tower/tower_api_client/models/error_detail.py,sha256=y8PlmvkyEoQHXNV-BjUKDFGA1mvbGA_VpTFza1zqVsg,1414
54
+ tower/tower_api_client/models/refresh_session_response.py,sha256=xmML35t5HJGx2Ox_h_jo0BCM6KgbPXkr5UqUi3IlQVg,1721
55
+ tower/tower_api_client/models/claim_device_login_ticket_params.py,sha256=4BCVGRlsjiOXB6RUlHQbmZJ3ihMYKHb1irB1DOK3hxc,1238
56
+ tower/tower_api_client/models/create_secret_response.py,sha256=fgCXVWin7qLKNcJC-r9wgjTVtwb2l31WZG62_nJu_Hs,1295
57
+ tower/tower_api_client/models/list_teams_response.py,sha256=gxy9kW9WYryYUTnZP-zhxm9v3vPMab51LmTiQQYYU3E,1542
58
+ tower/tower_api_client/models/create_team_response.py,sha256=h-suWwp2L8eQg9A-BcBXCaYVJ3_8R-V1nUyNbD-FAIo,1251
59
+ tower/tower_api_client/models/update_team_response.py,sha256=aVVf-Z_9vNbFcZ7Spt69JTgHHGI6-D5pWKJkuBP7SMA,1251
60
+ tower/tower_api_client/models/secret.py,sha256=veLfhVPhJYKl9u7RQQ0SC0usD3-SvUiZCiUTY4WEJ6E,1339
61
+ tower/tower_api_client/models/delete_team_params.py,sha256=CfUlz2PCdqWVfxqEjBveTrkfEw_-Hzt_308z6y4ADB4,1131
62
+ tower/tower_api_client/models/invite_team_member_params.py,sha256=HYgAuMRNGbDYVE5DSFjEmYzICjfJn-VQcwEEsur-iwM,1635
63
+ tower/tower_api_client/models/delete_team_invitation_params.py,sha256=f3768LqMUWitlizn6YRJekHXufP8AyPiuSiB0s8xmt0,1209
64
+ tower/tower_api_client/models/cancel_run_response.py,sha256=oT0eUv1CIncRiNYC10EbNP7aZlGvtppnkHNoNGQrReQ,1229
65
+ tower/tower_api_client/models/update_user_response.py,sha256=LEFi7xW8RcEcsIIpYMe5xiqysc8rBY_pXjfrBF2W4zQ,1251
66
+ tower/tower_api_client/models/create_account_response.py,sha256=tGBBJzvDa76zOnQ0-1V-o0LYU1DVY90r7Qts9lDLXyc,1317
67
+ tower/tower_api_client/models/delete_api_key_response.py,sha256=IJ3kGFavngg_Z1jpQKzJ_1Cj7oGMH6a-VwFgQqhbkVI,1309
68
+ tower/tower_api_client/models/accept_invitation_params.py,sha256=HQtFogqtQOrtQfg-JURkxl2JRD95pdh5DYnkxbxpaUc,1160
69
+ tower/tower_api_client/models/__init__.py,sha256=ctsjOo1mSCFU_E_Y75fDKfNWyrlcApZqCuB34SpW-6U,7641
70
+ tower/tower_api_client/models/exported_secret.py,sha256=7tA-MY_GXHT9Sb61c4CgwSZYrDQV05wkzOWt_TpcVkE,1453
71
+ tower/tower_api_client/models/list_apps_response.py,sha256=ynXRVHy-l9gQWpo8OvN9_BRGSpN-Qb2JrGKhe0a69xs,1844
72
+ tower/tower_api_client/models/update_user_params.py,sha256=BB_mmI6Hn9QQYbcWIkTMZq9PqATlDukYYLikK4hzQ5A,2050
73
+ tower/tower_api_client/models/run_statistics.py,sha256=PrSyeBBBCRN2HczOqXPcN4TG9NX27NNpYv2ZFnkWfdo,1203
74
+ tower/tower_api_client/models/describe_app_response.py,sha256=ZZzHpZaPVQnWrVACOJvHLRGqt7uK6o5wW-AQKvbgBSk,1739
75
+ tower/tower_api_client/models/update_my_team_invitation_params.py,sha256=FmHiQ_4Z4SU-xNzw_P4jib9TMl3genn9Ig9UlFpp7j0,1470
76
+ tower/tower_api_client/models/session.py,sha256=eMZWrpQrpD6Yzx_YTu2ZjO7FDp3oJYLm4-mWViTT_dQ,1586
77
+ tower/tower_api_client/models/create_api_key_response.py,sha256=oL7hBLDl0gcP9O3zBAnlyc2LLkxMZfEhywySXyfiiM8,1309
78
+ tower/tower_api_client/models/leave_team_response.py,sha256=N4HCMP5XemYHZiB1gi_XfZu7VpFhd4OedRcyqRKr3vc,1246
79
+ tower/tower_api_client/models/app_statistics.py,sha256=Pel95ukBWbuT18VcBAlf7Or7IsSkIQMQJLdmuqkz5IQ,1597
80
+ tower/tower_api_client/models/export_user_secrets_params.py,sha256=RUN0PbZtAuQvU71yr-uIe2yL2GISClPpfo2OFq_GI6Q,1197
81
+ tower/tower_api_client/models/describe_app_version_response.py,sha256=CprjEG2gPffC1b-gZaIH9lPHX7EzD2hupnLLwFXHSoE,1367
82
+ tower/tower_api_client/models/create_secret_params.py,sha256=H1p7DZMADIZe_hzVtf5fPPjBRqBMLaDQz3UQF8Mdxig,1746
83
+ tower/tower_api_client/models/create_session_params.py,sha256=VvrgSZA-UzEgfkZuFG8cFqUxKgGJyaicZ3DZasO2ShE,1337
84
+ tower/tower_api_client/models/deploy_app_response.py,sha256=hG3BO4XcsvneNUhpE0kemgjlckEMn6ov3nDBhjrwBN4,1320
85
+ tower/tower_api_client/models/run.py,sha256=vi84LkyS_hyJ3sJWi_YS10aRj85Is8tDD3L3TAvOU9A,3577
86
+ tower/tower_api_client/models/run_app_params_parameters.py,sha256=685rjugnqvF2PYTRwR76Ui3Ir7Be3tv-HN236LuvTFs,1244
87
+ tower/tower_api_client/models/create_session_response.py,sha256=m7Moo8clKI8BM_pe-F5z1B46d8yMyM5VwkBnsRwInI0,1317
88
+ tower/tower_api_client/models/remove_team_member_response.py,sha256=Vpc8kzgjsr779KIkLmOytuOoEpq9buRHLe9s7q1iCtU,1353
89
+ tower/tower_api_client/models/describe_session_response.py,sha256=6-uPN5YQ9nRe0pLJz3H1oe3xcxLhH9ldkmBMvCHOiLY,1327
90
+ tower/tower_api_client/models/statistics_settings.py,sha256=rM3BINbBNhcZqiD0N0IODL7iFEtMCeMUP7CqCnE4MXQ,719
91
+ tower/tower_api_client/models/log_line_error.py,sha256=V_bQ-HrpRWr_zvY05yZdliKZJkA1CmI2QAS4y7Fx06M,1069
92
+ tower/tower_api_client/models/log_line.py,sha256=gnTK0vW5OQNYu2ZH0Z2a7EfBy4qYRIhRTVJ1hn8D4bQ,1435
93
+ tower/tower_api_client/models/list_app_versions_response.py,sha256=RPmv2JAeqUUbD81kI-8N4iregtPUSBobZTHaPXOe25o,1670
94
+ tower/tower_api_client/models/describe_run_response.py,sha256=9Ut_95Sa_ITlGAsj3ixU049d17qX5EHyYvHdiuaCks4,1239
95
+ tower/tower_api_client/models/series_point.py,sha256=p6zzqGs9_Ff4I9Ado2UotnJcgoLpFQfI6PNsuLnhQrQ,1025
96
+ tower/tower_api_client/models/create_device_login_ticket_response.py,sha256=mda5-kFWVUIt38kiKqfyi3tfQuy1Vptkp3mSPWHC3oQ,2982
97
+ tower/tower_api_client/models/describe_device_login_session_response.py,sha256=Pr7rhLuqPlp6iYKaiLJ0F1t-yTYcmkzgmzxejwTuAmI,1386
98
+ tower/tower_api_client/models/export_secrets_response.py,sha256=T35Lkx-0p7bETKI3bA7lRBt4IBKQ-gMu_8YxjaufEfc,1963
99
+ tower/tower_api_client/models/create_team_params.py,sha256=78wFqKF-vczUhv1bscAA7TvB7Sh0lXdoc-tjRyENjOA,1304
100
+ tower/tower_api_client/models/list_secrets_response.py,sha256=PRmk4xtKuai-RjKY5WbrfKYk6qXSMsC3zCXVWbWeXvc,1895
101
+ tower/tower_api_client/models/team.py,sha256=C_F3t6LlnJsOcQTTHMyMrYqEryKvgh9JxmqVoThfQd0,1637
102
+ tower/tower_api_client/api/default/accept_invitation.py,sha256=rzjNWWM44TmExW7Pc0eUh7lm_o098hkgp1GLD_c8NV4,3425
103
+ tower/tower_api_client/api/default/deploy_app.py,sha256=EnvbfJahxxd5nJQpOhYDt6QCdcgljO8LPBcvbeGOetk,4334
104
+ tower/tower_api_client/api/default/list_secret_environments.py,sha256=luq-pXziw3COZ3WjsrkduDCR3j2mKgxjysfKUPcRpMY,2865
105
+ tower/tower_api_client/api/default/create_team.py,sha256=oHOXv93DALRATGZRmc7InI2FlfihhOV2ehh9P4O9nUw,3107
106
+ tower/tower_api_client/api/default/create_account.py,sha256=AVt26JvkDp_Vit0-D3usrkQUa0dEQ3ZMwAjcOQP1lho,3320
107
+ tower/tower_api_client/api/default/update_team.py,sha256=daw_IcIsrXXJ3EgaBUdLiqQ3OMsd9ucHO-sI5LbLU64,3903
108
+ tower/tower_api_client/api/default/list_app_environments.py,sha256=ijKg0ZcuHZBtBHIhaWkDXJ_VHZ9CZEtNfQBdH3f_prE,3424
109
+ tower/tower_api_client/api/default/list_secrets.py,sha256=TIKcHA0RwaBeq1OZPq7rauMN8zoi_tEn2NyxOP4Lz2E,5815
110
+ tower/tower_api_client/api/default/delete_secret.py,sha256=34msfoqk1wIE4hK6J5oaKX6J2AxfmvACYOUDGNTbjPM,2392
111
+ tower/tower_api_client/api/default/delete_team_invitation.py,sha256=WWSdnbSZW0cd5h3FZA5ag2wXyU2RtcrI6TBCcCqnS3I,4024
112
+ tower/tower_api_client/api/default/describe_secrets_key.py,sha256=kPD3uD3Jek-Ah0fbHlXCQ4e9mUfzOXxM0om9Q5NAvZ0,3989
113
+ tower/tower_api_client/api/default/generate_app_statistics.py,sha256=BN670YjHAiuGUgWRPctAXhluYPVsyz7vXkhgGtj9WZM,2790
114
+ tower/tower_api_client/api/default/update_user.py,sha256=fvjn5nHsKwmbzHJX2N8I1_cP_ytb57IRe7zNZtdxnaQ,3205
115
+ tower/tower_api_client/api/default/delete_api_key.py,sha256=Phd6zG0KFz3M_5gN_batPyXHtW4lRN6A2gxiIFW8ZXQ,3078
116
+ tower/tower_api_client/api/default/create_api_key.py,sha256=4A8oWgbFJ_dcMPGh4ReFOCkO_E5DHYaCtdyDLPc5oEA,3076
117
+ tower/tower_api_client/api/default/stream_app_run_logs.py,sha256=Vu4qfpBu7eHulGIqWtucWT8PwQ8BNkVXNYaHAe3Y8cc,2186
118
+ tower/tower_api_client/api/default/list_app_versions.py,sha256=JZfb1O8bhLc3so1jIqqqs1NNnjvC8-LGonT-29AJJEo,3332
119
+ tower/tower_api_client/api/default/create_session.py,sha256=ZAG3YKf1-2GpMPGkAO0UPaOxncZirrnZnYH4AyhX1cA,3187
120
+ tower/tower_api_client/api/default/describe_app.py,sha256=SNjSWWV2PFVpvSsgrD6IN1AGT4j09ad5rw_77A7FLGU,3859
121
+ tower/tower_api_client/api/default/describe_session.py,sha256=oM11FNBxitDq96PmtHvNVqWqxcVaPDZmHPqzTOMpzxw,2872
122
+ tower/tower_api_client/api/default/update_account_slug.py,sha256=9ejbBdNGnLe5ur4VxByxlgC5NcKTC9vmFuVXMQ0RK_w,3752
123
+ tower/tower_api_client/api/default/claim_device_login_ticket.py,sha256=QOpqiw6TQWJq1SHd_ZqJSCDHRluTt9s95RJADPXv8jI,3664
124
+ tower/tower_api_client/api/default/delete_app.py,sha256=1XKgIH-gZXAk77-US4p3X-ZBtxyW2Btw2lY_On5JMdQ,3115
125
+ tower/tower_api_client/api/default/create_secret.py,sha256=3vYlQEz6Nz1iFkLydB07aMEQyKjOxhYSYX-bUDJQqTU,3353
126
+ tower/tower_api_client/api/default/invite_team_member.py,sha256=YYmFHHWbwyDEX4o1A-HpRHpO4aCYnvxFVkvCRJFljJA,3710
127
+ tower/tower_api_client/api/default/remove_team_member.py,sha256=8VNdUkw5cXIU_Yywn8RZjq48wzHOS280UztWZqIjAcc,3720
128
+ tower/tower_api_client/api/default/describe_run.py,sha256=YB1WG7oumczv2bBTnta2UegTJJmP_R4YCpiEBnozhrw,3866
129
+ tower/tower_api_client/api/default/leave_team.py,sha256=U5R642gogEllD0CEiKw2gyr_WpZBmYiDA9vh8fVxwCM,3596
130
+ tower/tower_api_client/api/default/create_apps.py,sha256=ptKVanB5RBvgq4U-ovBkVOPLOJe0TZg5JPnasc04Jn8,3170
131
+ tower/tower_api_client/api/default/create_device_login_ticket.py,sha256=V3Rq61b0y3nxwD6zyjE6T1vaN7zfjvlq-A1Pu0JZDGQ,2978
132
+ tower/tower_api_client/api/default/generate_run_statistics.py,sha256=7xI2WDi1dfceWB0akWrfWgUJ0TG2cN1l5tPJrW0R70w,3885
133
+ tower/tower_api_client/api/default/refresh_session.py,sha256=NQEDkFUGFIsexZ5mLccXAFBkmBTgb1zz_qytS-iUbds,3152
134
+ tower/tower_api_client/api/default/list_team_members.py,sha256=OZ2eD9nCP2LLE7w6vG7u2Uu625F6vQOtUXGNjfBq5No,3088
135
+ tower/tower_api_client/api/default/get_app_run_logs.py,sha256=frqq-j5NETQdur3HZSQrEb_bnMi4YzwNOROqY8UBosY,3664
136
+ tower/tower_api_client/api/default/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
137
+ tower/tower_api_client/api/default/delete_team.py,sha256=p6FkYLTMVvpJrQ2n9VxiQGpXPtJkIfDmF5sbT_lz17c,3109
138
+ tower/tower_api_client/api/default/export_secrets.py,sha256=4r3RCiLTRQJlZkIRgtfbqsVHPkt1IIM2j90tbPtkuTw,6663
139
+ tower/tower_api_client/api/default/list_team_invitations.py,sha256=IvjlFWUgpdNUn0ho8YHxrb7NBQMmjzRIF6fDLj_X7is,3220
140
+ tower/tower_api_client/api/default/update_my_team_invitation.py,sha256=Jg84d6F4R9EEYtvSTqQBi1lGqwlr8OeYVAaqTeRGzLE,3589
141
+ tower/tower_api_client/api/default/list_teams.py,sha256=_eGFMlb8ve1Bx65ewZeT35X0x7fNjUrf0pvAT2H034M,2600
142
+ tower/tower_api_client/api/default/describe_device_login_session.py,sha256=yhISriGgG7BuVN49f_F6d5Ta-slPG9t6e6-Uz1qwm-A,3540
143
+ tower/tower_api_client/api/default/run_app.py,sha256=RRQU-EiQX6Za_Zc0mIkJ12NKnnlXXN6Sdze1Iq2-dJU,4014
144
+ tower/tower_api_client/api/default/list_runs.py,sha256=nTSXMtF9VwtBGw4SdhbM9kIvboVlm5IW5twC2L3prFI,4846
145
+ tower/tower_api_client/api/default/list_api_keys.py,sha256=8rg2ZGizVA_1elqwlrsjovwB5aOMlDzrmK1gEI9mUig,2686
146
+ tower/tower_api_client/api/default/list_my_team_invitations.py,sha256=AiNZkROp2cGveqf_QFTWyJlsN5qmeFbdNdS7u5aNb8o,2797
147
+ tower/tower_api_client/api/default/cancel_run.py,sha256=3CbllK63r5SwLRrvyoOp5qOpUZsEUl5DwyMQPXzOQTQ,3275
148
+ tower/tower_api_client/api/default/resend_team_invitation.py,sha256=vzZNL2s0en7waQFPGcAHmoh4nrOoU456I0LXVX7N7AA,4081
149
+ tower/tower_api_client/api/default/describe_app_version.py,sha256=6XfpRrGGBkOEQLI-8t3_wfNh2TjQY6TyGqyLHy6tmj4,3696
150
+ tower/tower_api_client/api/default/list_apps.py,sha256=1_su1JyOpaYkegpiY3qyqpczFL0wQiuejRWDjfQ3Fq8,7956
151
+ tower/tower_api_client/api/__init__.py,sha256=87ApBzKyGb5zsgTMOkQXDqsLZCmaSFoJMwbGzCDQZMw,47
152
+ tower/tower_api_client/client.py,sha256=pE1JZjmTEEgjraYuDhiYgI62CLgLrm3BKp4ICyBaHII,1821
153
+ tower/tower_api_client/__init__.py,sha256=yMn3wH2e9WKE3n9EXEWk0UgryhGLhBeJMqHylhFOeUc,153
154
+ tower/tower_api_client/types.py,sha256=7V7MhLBIHSVGCKCF_2mZmG5Olzs_EiMRyAwH2ELhStc,974
155
+ tower-0.3.4.data/scripts/tower,sha256=6SVrXTKMvPHgMz7tfNlQBOymgwZPLkdxL5WfVpGsu84,12216872
156
+ tower-0.3.4.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: maturin (1.8.3)
3
+ Root-Is-Purelib: false
4
+ Tag: py3-none-linux_armv6l