rsconnect-python 1.31.1__tar.gz → 1.33.0__tar.gz

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 (68) hide show
  1. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/PKG-INFO +19 -9
  2. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/README.md +13 -5
  3. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/pyproject.toml +8 -4
  4. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/pyproject.toml.orig +3 -3
  5. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/api.py +169 -113
  6. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/bundle.py +185 -38
  7. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/connect_cloud.py +20 -4
  8. rsconnect_python-1.33.0/rsconnect/device_login.py +1272 -0
  9. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/environment.py +125 -53
  10. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/exception.py +4 -0
  11. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/http_support.py +237 -67
  12. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/main.py +526 -118
  13. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/metadata.py +108 -21
  14. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/models.py +16 -60
  15. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/oauth.py +329 -77
  16. rsconnect_python-1.33.0/rsconnect/preflight.py +620 -0
  17. rsconnect_python-1.33.0/rsconnect/preflight_node.py +518 -0
  18. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/pyproject.py +19 -2
  19. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/quickstart.py +11 -3
  20. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/subprocesses/inspect_environment.py +210 -39
  21. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/validation.py +11 -4
  22. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/LICENSE.md +0 -0
  23. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/__init__.py +0 -0
  24. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/actions.py +0 -0
  25. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/actions_content.py +0 -0
  26. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/actions_environment.py +0 -0
  27. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/actions_integration.py +0 -0
  28. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/certificates.py +0 -0
  29. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/environment_node.py +0 -0
  30. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/environment_r.py +0 -0
  31. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/git_metadata.py +0 -0
  32. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/json_web_token.py +0 -0
  33. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/log.py +0 -0
  34. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/py.typed +0 -0
  35. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/__init__.py +0 -0
  36. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/__init__.py +0 -0
  37. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/api/README.md.tmpl +0 -0
  38. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/api/__connect__.py.tmpl +0 -0
  39. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/api/__init__.py.tmpl +0 -0
  40. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/api/__main__.py.tmpl +0 -0
  41. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/api/app.py.tmpl +0 -0
  42. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/api/pyproject.toml.tmpl +0 -0
  43. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/fastapi/README.md.tmpl +0 -0
  44. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/fastapi/__connect__.py.tmpl +0 -0
  45. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/fastapi/__init__.py.tmpl +0 -0
  46. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/fastapi/__main__.py.tmpl +0 -0
  47. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/fastapi/app.py.tmpl +0 -0
  48. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/fastapi/pyproject.toml.tmpl +0 -0
  49. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/notebook/README.md.tmpl +0 -0
  50. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/notebook/notebook.ipynb.tmpl +0 -0
  51. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/notebook/pyproject.toml.tmpl +0 -0
  52. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/quarto/README.md.tmpl +0 -0
  53. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/quarto/pyproject.toml.tmpl +0 -0
  54. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/quarto/report.qmd.tmpl +0 -0
  55. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/shiny/README.md.tmpl +0 -0
  56. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/shiny/app.py.tmpl +0 -0
  57. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/shiny/pyproject.toml.tmpl +0 -0
  58. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/streamlit/README.md.tmpl +0 -0
  59. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/streamlit/app.py.tmpl +0 -0
  60. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/streamlit/pyproject.toml.tmpl +0 -0
  61. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/voila/README.md.tmpl +0 -0
  62. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/quickstart/templates/voila/pyproject.toml.tmpl +0 -0
  63. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/shiny_express.py +0 -0
  64. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/snowflake.py +0 -0
  65. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/subprocesses/__init__.py +0 -0
  66. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/timeouts.py +0 -0
  67. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/utils_package.py +0 -0
  68. {rsconnect_python-1.31.1 → rsconnect_python-1.33.0}/rsconnect/version_check.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: rsconnect_python
3
- Version: 1.31.1
3
+ Version: 1.33.0
4
4
  Summary: The Posit Connect command-line interface.
5
5
  Author: Posit, PBC
6
6
  Author-email: Posit, PBC <rsconnect@posit.co>
@@ -26,15 +26,17 @@ License: # MIT License
26
26
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
27
27
  SOFTWARE.
28
28
  Requires-Dist: typing-extensions>=4.8.0
29
- Requires-Dist: pip>=10.0.0
29
+ Requires-Dist: pip>=20.3
30
30
  Requires-Dist: uv>=0.9.0
31
31
  Requires-Dist: semver>=2.0.0,<4.0.0
32
- Requires-Dist: pyjwt>=2.4.0
32
+ Requires-Dist: pyjwt>=2.4.0 ; python_full_version < '3.9'
33
+ Requires-Dist: pyjwt>=2.15.0 ; python_full_version >= '3.9'
33
34
  Requires-Dist: click>=8.0.0
34
35
  Requires-Dist: packaging>=20.0
35
36
  Requires-Dist: toml>=0.10 ; python_full_version < '3.11'
36
37
  Requires-Dist: keyring>=23.0.0 ; extra == 'keyring'
37
- Requires-Dist: snowflake-cli ; extra == 'snowflake'
38
+ Requires-Dist: snowflake-cli>=2.8.2 ; python_full_version < '3.10' and extra == 'snowflake'
39
+ Requires-Dist: snowflake-cli>=3.23.0 ; python_full_version >= '3.10' and extra == 'snowflake'
38
40
  Requires-Python: >=3.8
39
41
  Project-URL: Repository, http://github.com/posit-dev/rsconnect-python
40
42
  Project-URL: Documentation, https://docs.posit.co/rsconnect-python
@@ -68,12 +70,10 @@ python -m pip install rsconnect-python
68
70
 
69
71
  ## Usage with Posit Connect
70
72
 
71
- [Get an API key from your Posit Connect server](https://docs.posit.co/connect/user/api-keys/) with at least publisher privileges:
72
-
73
- Store your credentials:
73
+ Log in to your Posit Connect server:
74
74
 
75
75
  ```bash
76
- rsconnect add --server https://connect.example.com --api-key <YOUR-CONNECT-API-KEY> --name production
76
+ rsconnect login https://connect.example.com
77
77
  ```
78
78
 
79
79
  Deploy your application:
@@ -82,6 +82,16 @@ Deploy your application:
82
82
  rsconnect deploy shiny app.py --title "my shiny app"
83
83
  ```
84
84
 
85
+ Browser login requires Posit Connect 2026.02.0 or later. In remote containers,
86
+ or other sessions where the browser cannot reach the CLI's local callback, use
87
+ `--use-device-code` with Connect 2026.06.0 or later.
88
+
89
+ For older servers, or automation that cannot use identity tokens, [get an API
90
+ key](https://docs.posit.co/connect/user/api-keys/) and store it with
91
+ `rsconnect add`.
92
+ See the [authentication guide](https://docs.posit.co/rsconnect-python/#managing-server-information)
93
+ for identity token requirements and other login options.
94
+
85
95
  [Read more about publisher and admin capabilities on the docs site.](https://docs.posit.co/rsconnect-python)
86
96
 
87
97
  ## Usage with Posit Connect Cloud
@@ -98,7 +108,7 @@ Deploy your application:
98
108
  rsconnect deploy shiny app.py --name cloud --title "my shiny app"
99
109
  ```
100
110
 
101
- For non-interactive use such as CI, pass a service account credential with
111
+ For non-interactive use such as CI, pass client credentials with
102
112
  `--client-id` and `--client-secret`, or the `CONNECT_CLOUD_CLIENT_ID` and
103
113
  `CONNECT_CLOUD_CLIENT_SECRET` environment variables.
104
114
 
@@ -24,12 +24,10 @@ python -m pip install rsconnect-python
24
24
 
25
25
  ## Usage with Posit Connect
26
26
 
27
- [Get an API key from your Posit Connect server](https://docs.posit.co/connect/user/api-keys/) with at least publisher privileges:
28
-
29
- Store your credentials:
27
+ Log in to your Posit Connect server:
30
28
 
31
29
  ```bash
32
- rsconnect add --server https://connect.example.com --api-key <YOUR-CONNECT-API-KEY> --name production
30
+ rsconnect login https://connect.example.com
33
31
  ```
34
32
 
35
33
  Deploy your application:
@@ -38,6 +36,16 @@ Deploy your application:
38
36
  rsconnect deploy shiny app.py --title "my shiny app"
39
37
  ```
40
38
 
39
+ Browser login requires Posit Connect 2026.02.0 or later. In remote containers,
40
+ or other sessions where the browser cannot reach the CLI's local callback, use
41
+ `--use-device-code` with Connect 2026.06.0 or later.
42
+
43
+ For older servers, or automation that cannot use identity tokens, [get an API
44
+ key](https://docs.posit.co/connect/user/api-keys/) and store it with
45
+ `rsconnect add`.
46
+ See the [authentication guide](https://docs.posit.co/rsconnect-python/#managing-server-information)
47
+ for identity token requirements and other login options.
48
+
41
49
  [Read more about publisher and admin capabilities on the docs site.](https://docs.posit.co/rsconnect-python)
42
50
 
43
51
  ## Usage with Posit Connect Cloud
@@ -54,7 +62,7 @@ Deploy your application:
54
62
  rsconnect deploy shiny app.py --name cloud --title "my shiny app"
55
63
  ```
56
64
 
57
- For non-interactive use such as CI, pass a service account credential with
65
+ For non-interactive use such as CI, pass client credentials with
58
66
  `--client-id` and `--client-secret`, or the `CONNECT_CLOUD_CLIENT_ID` and
59
67
  `CONNECT_CLOUD_CLIENT_SECRET` environment variables.
60
68
 
@@ -2,13 +2,14 @@
2
2
  name = "rsconnect_python"
3
3
  description = "The Posit Connect command-line interface."
4
4
  requires-python = ">=3.8"
5
- version = "1.31.1"
5
+ version = "1.33.0"
6
6
  dependencies = [
7
7
  "typing-extensions>=4.8.0",
8
- "pip>=10.0.0",
8
+ "pip>=20.3",
9
9
  "uv>=0.9.0",
10
10
  "semver>=2.0.0,<4.0.0",
11
- "pyjwt>=2.4.0",
11
+ "pyjwt>=2.4.0; python_version < '3.9'",
12
+ "pyjwt>=2.15.0; python_version >= '3.9'",
12
13
  "click>=8.0.0",
13
14
  "packaging>=20.0",
14
15
  "toml>=0.10; python_version < '3.11'",
@@ -30,7 +31,10 @@ rsconnect = "rsconnect.main:cli"
30
31
 
31
32
  [project.optional-dependencies]
32
33
  keyring = ["keyring>=23.0.0"]
33
- snowflake = ["snowflake-cli"]
34
+ snowflake = [
35
+ "snowflake-cli>=2.8.2; python_version < '3.10'",
36
+ "snowflake-cli>=3.23.0; python_version >= '3.10'",
37
+ ]
34
38
 
35
39
  [project.urls]
36
40
  Repository = "http://github.com/posit-dev/rsconnect-python"
@@ -2,8 +2,8 @@
2
2
  name = "rsconnect_python"
3
3
  description = "The Posit Connect command-line interface."
4
4
  requires-python = ">=3.8"
5
- version = "1.31.1"
6
- dependencies = [ "typing-extensions>=4.8.0", "pip>=10.0.0", "uv>=0.9.0", "semver>=2.0.0,<4.0.0", "pyjwt>=2.4.0", "click>=8.0.0", "packaging>=20.0", "toml>=0.10; python_version < '3.11'",]
5
+ version = "1.33.0"
6
+ dependencies = [ "typing-extensions>=4.8.0", "pip>=20.3", "uv>=0.9.0", "semver>=2.0.0,<4.0.0", "pyjwt>=2.4.0; python_version < '3.9'", "pyjwt>=2.15.0; python_version >= '3.9'", "click>=8.0.0", "packaging>=20.0", "toml>=0.10; python_version < '3.11'",]
7
7
  [[project.authors]]
8
8
  name = "Posit, PBC"
9
9
  email = "rsconnect@posit.co"
@@ -28,7 +28,7 @@ rsconnect = "rsconnect.main:cli"
28
28
 
29
29
  [project.optional-dependencies]
30
30
  keyring = [ "keyring>=23.0.0",]
31
- snowflake = [ "snowflake-cli",]
31
+ snowflake = [ "snowflake-cli>=2.8.2; python_version < '3.10'", "snowflake-cli>=3.23.0; python_version >= '3.10'",]
32
32
 
33
33
  [project.urls]
34
34
  Repository = "http://github.com/posit-dev/rsconnect-python"