pipecatcloud 0.0.8__tar.gz → 0.0.10__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 (53) hide show
  1. pipecatcloud-0.0.10/.github/workflows/publish-pypi.yml +59 -0
  2. pipecatcloud-0.0.10/.github/workflows/publish-test.yml +59 -0
  3. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/.github/workflows/python-publish.yml +1 -13
  4. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/CHANGELOG.md +34 -0
  5. pipecatcloud-0.0.10/LICENSE +24 -0
  6. pipecatcloud-0.0.10/PKG-INFO +95 -0
  7. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/README.md +33 -25
  8. pipecatcloud-0.0.10/publish-pypi.yml +59 -0
  9. pipecatcloud-0.0.10/publish-test.yml +59 -0
  10. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/pyproject.toml +13 -6
  11. pipecatcloud-0.0.10/src/pipecatcloud/__init__.py +33 -0
  12. pipecatcloud-0.0.10/src/pipecatcloud/_utils/console_utils.py +124 -0
  13. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/_utils/deploy_utils.py +3 -0
  14. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/api.py +67 -11
  15. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/cli/__init__.py +1 -1
  16. pipecatcloud-0.0.10/src/pipecatcloud/cli/commands/agent.py +503 -0
  17. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/cli/commands/deploy.py +7 -37
  18. pipecatcloud-0.0.10/src/pipecatcloud/cli/commands/init.py +112 -0
  19. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/cli/commands/organizations.py +1 -1
  20. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/cli/commands/secrets.py +0 -7
  21. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/cli/entry_point.py +2 -2
  22. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/config.py +3 -3
  23. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/exception.py +14 -12
  24. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/session.py +19 -10
  25. pipecatcloud-0.0.10/src/pipecatcloud.egg-info/PKG-INFO +95 -0
  26. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud.egg-info/SOURCES.txt +5 -2
  27. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud.egg-info/entry_points.txt +1 -1
  28. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud.egg-info/requires.txt +3 -3
  29. pipecatcloud-0.0.8/PKG-INFO +0 -13
  30. pipecatcloud-0.0.8/src/pipecatcloud/__init__.py +0 -7
  31. pipecatcloud-0.0.8/src/pipecatcloud/_utils/agent_utils.py +0 -9
  32. pipecatcloud-0.0.8/src/pipecatcloud/_utils/console_utils.py +0 -76
  33. pipecatcloud-0.0.8/src/pipecatcloud/cli/commands/agent.py +0 -373
  34. pipecatcloud-0.0.8/src/pipecatcloud/cli/commands/init.py +0 -16
  35. pipecatcloud-0.0.8/src/pipecatcloud/errors.py +0 -11
  36. pipecatcloud-0.0.8/src/pipecatcloud.egg-info/PKG-INFO +0 -13
  37. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/.gitignore +0 -0
  38. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/dev-requirements.txt +0 -0
  39. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/pipecat-cloud.png +0 -0
  40. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/setup.cfg +0 -0
  41. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/__main__.py +0 -0
  42. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/__version__.py +0 -0
  43. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/_utils/__init__.py +0 -0
  44. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/_utils/async_utils.py +0 -0
  45. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/_utils/auth_utils.py +0 -0
  46. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/_utils/local_runner.py +0 -0
  47. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/cli/api.py +0 -0
  48. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/cli/commands/__init__.py +0 -0
  49. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/cli/commands/auth.py +0 -0
  50. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/cli/commands/run.py +0 -0
  51. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud/cli/config.py +0 -0
  52. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud.egg-info/dependency_links.txt +0 -0
  53. {pipecatcloud-0.0.8 → pipecatcloud-0.0.10}/src/pipecatcloud.egg-info/top_level.txt +0 -0
@@ -0,0 +1,59 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
8
+ required: true
9
+ type: string
10
+
11
+ jobs:
12
+ build-and-publish:
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/p/pipecat-cloud
17
+ permissions:
18
+ id-token: write # IMPORTANT: this permission is needed for trusted publishing
19
+ contents: write # Needed for tagging
20
+
21
+ steps:
22
+ - name: Checkout code
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v4
27
+ with:
28
+ python-version: '3.10'
29
+
30
+ - name: Verify version matches
31
+ run: |
32
+ pip install tomli
33
+ PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
34
+ if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
35
+ echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
36
+ exit 1
37
+ fi
38
+
39
+ - name: Install dependencies
40
+ run: |
41
+ python -m pip install --upgrade pip
42
+ pip install -r requirements.txt
43
+ pip install build twine
44
+
45
+ - name: Build package
46
+ run: python -m build
47
+
48
+ - name: Create release tag
49
+ run: |
50
+ git config --local user.email "action@github.com"
51
+ git config --local user.name "GitHub Action"
52
+ git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
53
+ git push origin "v${{ github.event.inputs.version }}"
54
+
55
+ - name: Publish to PyPI
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ verbose: true
59
+ print-hash: true
@@ -0,0 +1,59 @@
1
+ name: Publish to TEST PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
8
+ required: true
9
+ type: string
10
+
11
+ jobs:
12
+ build-and-publish:
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://test.pypi.org/project/pipecat-cloud
17
+ permissions:
18
+ id-token: write # IMPORTANT: this permission is needed for trusted publishing
19
+ contents: write # Needed for tagging
20
+
21
+ steps:
22
+ - name: Checkout code
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v4
27
+ with:
28
+ python-version: '3.10'
29
+
30
+ - name: Verify version matches
31
+ run: |
32
+ pip install tomli
33
+ PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
34
+ if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
35
+ echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
36
+ exit 1
37
+ fi
38
+
39
+ - name: Install dependencies
40
+ run: |
41
+ python -m pip install --upgrade pip
42
+ pip install -r requirements.txt
43
+ pip install build twine
44
+
45
+ - name: Build package
46
+ run: python -m build
47
+
48
+ - name: Create release tag
49
+ run: |
50
+ git config --local user.email "action@github.com"
51
+ git config --local user.name "GitHub Action"
52
+ git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
53
+ git push origin "v${{ github.event.inputs.version }}"
54
+
55
+ - name: Publish to PyPI
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ verbose: true
59
+ print-hash: true
@@ -49,7 +49,7 @@ jobs:
49
49
 
50
50
  environment:
51
51
  name: pypi
52
- url: https://pypi.org/p/pipecatcloud
52
+ url: https://pypi.org/p/pipecat-cloud
53
53
 
54
54
  steps:
55
55
  - uses: actions/checkout@v4
@@ -65,23 +65,11 @@ jobs:
65
65
  with:
66
66
  packages-dir: dist/
67
67
 
68
- - name: Read CHANGELOG
69
- id: changelog
70
- run: |
71
- if [ -f "CHANGELOG.md" ]; then
72
- CHANGELOG_CONTENT=$(cat CHANGELOG.md)
73
- echo "CHANGELOG_CONTENT=${CHANGELOG_CONTENT}" >> $GITHUB_ENV
74
- else
75
- echo "CHANGELOG_CONTENT=No changelog available." >> $GITHUB_ENV
76
- fi
77
-
78
68
  - name: Create GitHub Release
79
69
  uses: softprops/action-gh-release@v2
80
70
  with:
81
71
  tag_name: ${{ github.ref }}
82
72
  name: Release ${{ github.ref_name }}
83
- body: |
84
- ${{ env.CHANGELOG_CONTENT }}
85
73
  draft: false
86
74
  prerelease: false
87
75
  files: |
@@ -5,6 +5,40 @@ All notable changes to **Pipecat Cloud** will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.0.10] - 2025-03-04
9
+
10
+ ### Added
11
+ - `init` convenience command will now populate the working directory with files from the starter project
12
+ - `agent log` allows for optional severity level filtering
13
+
14
+ ### Changed
15
+ - `agent status` and `deploy` no longer show superfluous data
16
+ - `session.py` now correctly handles errors when starting agents
17
+ - `secrets set` no longer prompts twice for confirmation if the secret set does not exist
18
+
19
+ ### Removed
20
+ - `errors.py` removed as redundant (error message and code returned via API)
21
+ - `agent_utils.py` removed as redundant (error message and code returned via API)
22
+
23
+ ## [0.0.9] - 2025-02-27
24
+
25
+ ### Added
26
+ - `agent status [agent-name]` now shows deployment info and scaling configuration
27
+ - `agent sessions [agent-name]` lists active session count for an agent (will list session details in future)
28
+ - `agent start [agent-name] -D` now shows the Daily room URL (and token) to join in the terminal output
29
+
30
+ ### Changed
31
+ - Changed CLI command from `pipecat` to `pipecatcloud` or `pcc`
32
+ - `agent delete` prompts the user for confirmation first
33
+ - `agent start` now checks the target deployment first to ensure it exists and is in a healthy state
34
+ - Changed the information order of `agent status` so the health badge is clearly visible in terminal
35
+ - `agent deploy` now defaults to "Y" for the confirmation prompts
36
+
37
+ ### Fixed
38
+ - Fixed lint error with payload data in `agent start`
39
+ - Fixed a bug where `pcc-deploy.toml` files were required to be present
40
+ - `deploy` command now correctly passes the secret set to the deployment from the `pcc-deploy.toml` file
41
+
8
42
  ## [0.0.8] - 2025-02-03
9
43
 
10
44
  ### Added
@@ -0,0 +1,24 @@
1
+ BSD 2-Clause License
2
+
3
+ Copyright (c) 2024, Daily
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
19
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,95 @@
1
+ Metadata-Version: 2.2
2
+ Name: pipecatcloud
3
+ Version: 0.0.10
4
+ Summary: Cloud hosting for Pipecat AI applications
5
+ License: BSD 2-Clause License
6
+ Project-URL: Website, https://docs.pipecat.daily.co/
7
+ Keywords: pipecat,pipecat-ai,voice,ai,llm
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: aiohttp<4.0.0,~=3.11.13
12
+ Requires-Dist: fastapi~=0.115.6
13
+ Requires-Dist: loguru~=0.7.3
14
+ Requires-Dist: python-dotenv~=1.0.1
15
+ Requires-Dist: uvicorn~=0.32.0
16
+ Requires-Dist: typer~=0.13.0
17
+ Requires-Dist: synchronicity~=0.7.6
18
+ Requires-Dist: toml~=0.10.2
19
+ Requires-Dist: questionary~=2.1.0
20
+
21
+ <h1><div align="center">
22
+ <img alt="pipecat cloud" width="500px" height="auto" src="./pipecat-cloud.png">
23
+ </div></h1>
24
+
25
+ [![Docs](https://img.shields.io/badge/documentation-blue)](https://docs.pipecat.daily.co)
26
+ [![PyPI](https://img.shields.io/pypi/v/pipecatcloud)](https://pypi.org/project/pipecatcloud)
27
+
28
+ # Pipecat Cloud
29
+
30
+ Python module and CLI for interacting with [Pipecat Cloud](https://pipecat.daily.co).
31
+
32
+ ### Requirements
33
+
34
+ - Python 3.10+
35
+ - Docker and a Docker repository (e.g. Docker Hub)
36
+ - Active [Pipecat Cloud](https://pipecat.daily.co)
37
+ account
38
+
39
+ ### Documentation
40
+
41
+ Documentation for Pipecat Cloud is available [here](https://docs.pipecat.daily.co).
42
+
43
+ ### Installation
44
+
45
+ ```shell
46
+ pip install pipecatcloud
47
+
48
+ pcc --version
49
+ pcc --help
50
+
51
+ # Note: you can use `pcc` or `pipecatcloud` interchangeably
52
+ pcc auth login
53
+ ```
54
+
55
+ ! All CLI commands have a `--help` flag that will display the command usage and options.
56
+
57
+ ## Usage
58
+
59
+ 1. Create an account at [Pipecat Cloud](https://pipecat.daily.co)
60
+
61
+ 2. Login to your account `pcc auth login`
62
+
63
+ 3. (Optional): Clone the starter agent [here](https://github.com/daily-co/pipecat-cloud-starter)
64
+
65
+ 4. Build your agent `docker build --platform linux/arm64 -t your-agent-name .`
66
+
67
+ 5. Push your Docker image to your repository `docker push your-repository/your-agent-name:0.1`
68
+
69
+ 6. Deploy your agent `pcc deploy starter-agent your-repository/your-agent-name:0.1`
70
+
71
+ ### Usage in Python scripts
72
+
73
+ If want to programmatically start an agent within a Python script, you can use the `pipecatcloud.session` module.
74
+
75
+ ```python
76
+ from pipecatcloud.session import Session
77
+ from pipecatcloud.exception import AgentStartError
78
+ import asyncio
79
+
80
+ async def main():
81
+ session = Session(
82
+ agent_name="your-agent-name",
83
+ api_key="pk_...",
84
+ )
85
+
86
+ try:
87
+ await session.start()
88
+ except AgentStartError as e:
89
+ print(e)
90
+ except Exception as e:
91
+ raise (e)
92
+
93
+ if __name__ == "__main__":
94
+ asyncio.run(main())
95
+ ```
@@ -1,36 +1,34 @@
1
-
2
1
  <h1><div align="center">
3
2
  <img alt="pipecat cloud" width="500px" height="auto" src="./pipecat-cloud.png">
4
3
  </div></h1>
5
4
 
6
-
7
- [![Docs](https://img.shields.io/badge/documentation-blue)](https://docs.pipecat.cloud)
5
+ [![Docs](https://img.shields.io/badge/documentation-blue)](https://docs.pipecat.daily.co)
8
6
  [![PyPI](https://img.shields.io/pypi/v/pipecatcloud)](https://pypi.org/project/pipecatcloud)
9
7
 
10
8
  # Pipecat Cloud
11
9
 
12
- Python module and CLI for interacting with [Pipecat Cloud](https://pipecat.cloud).
10
+ Python module and CLI for interacting with [Pipecat Cloud](https://pipecat.daily.co).
13
11
 
14
12
  ### Requirements
15
13
 
16
14
  - Python 3.10+
17
15
  - Docker and a Docker repository (e.g. Docker Hub)
18
- - Active [Pipecat Cloud](https://dashboard.pipecat.cloud)
19
- account
16
+ - Active [Pipecat Cloud](https://pipecat.daily.co)
17
+ account
20
18
 
21
19
  ### Documentation
22
20
 
23
- Documentation for Pipecat Cloud is available [here](https://docs.pipecat.cloud).
21
+ Documentation for Pipecat Cloud is available [here](https://docs.pipecat.daily.co).
24
22
 
25
23
  ### Installation
26
24
 
27
25
  ```shell
28
26
  pip install pipecatcloud
29
27
 
30
- pipecat --version
31
- pipecat --help
28
+ pcc --version
29
+ pcc --help
32
30
 
33
- # Note: you can use `pipecat` or `pcc` interchangeably
31
+ # Note: you can use `pcc` or `pipecatcloud` interchangeably
34
32
  pcc auth login
35
33
  ```
36
34
 
@@ -38,30 +36,40 @@ pcc auth login
38
36
 
39
37
  ## Usage
40
38
 
41
- 1. Create an account at [Pipecat Cloud](https://pipecat.cloud)
39
+ 1. Create an account at [Pipecat Cloud](https://pipecat.daily.co)
42
40
 
43
- 2. Login to your account `pipecat auth login`
41
+ 2. Login to your account `pcc auth login`
44
42
 
45
- 3. (Optional): Clone the starter agent [here](https://github.com/pipecat-ai/pipecat-cloud-starter-agent)
43
+ 3. (Optional): Clone the starter agent [here](https://github.com/daily-co/pipecat-cloud-starter)
46
44
 
47
45
  4. Build your agent `docker build --platform linux/arm64 -t your-agent-name .`
48
46
 
49
47
  5. Push your Docker image to your repository `docker push your-repository/your-agent-name:0.1`
50
48
 
51
- 6. Deploy your agent `pipecat deploy starter-agent your-repository/your-agent-name:0.1`
49
+ 6. Deploy your agent `pcc deploy starter-agent your-repository/your-agent-name:0.1`
52
50
 
53
51
  ### Usage in Python scripts
54
52
 
55
- If want to programmatically start an agent within a Python script, you can use the `pipecatcloud.agent` module.
53
+ If want to programmatically start an agent within a Python script, you can use the `pipecatcloud.session` module.
56
54
 
57
55
  ```python
58
- from pipecatcloud.agent import Agent
59
-
60
- agent = Agent(
61
- agent_name="your-agent-name",
62
- organization="your-organization",
63
- api_key="your-api-key",
64
- )
65
-
66
- await agent.start()
67
- ```
56
+ from pipecatcloud.session import Session
57
+ from pipecatcloud.exception import AgentStartError
58
+ import asyncio
59
+
60
+ async def main():
61
+ session = Session(
62
+ agent_name="your-agent-name",
63
+ api_key="pk_...",
64
+ )
65
+
66
+ try:
67
+ await session.start()
68
+ except AgentStartError as e:
69
+ print(e)
70
+ except Exception as e:
71
+ raise (e)
72
+
73
+ if __name__ == "__main__":
74
+ asyncio.run(main())
75
+ ```
@@ -0,0 +1,59 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
8
+ required: true
9
+ type: string
10
+
11
+ jobs:
12
+ build-and-publish:
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/p/pipecat-cloud
17
+ permissions:
18
+ id-token: write # IMPORTANT: this permission is needed for trusted publishing
19
+ contents: write # Needed for tagging
20
+
21
+ steps:
22
+ - name: Checkout code
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v4
27
+ with:
28
+ python-version: '3.10'
29
+
30
+ - name: Verify version matches
31
+ run: |
32
+ pip install tomli
33
+ PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
34
+ if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
35
+ echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
36
+ exit 1
37
+ fi
38
+
39
+ - name: Install dependencies
40
+ run: |
41
+ python -m pip install --upgrade pip
42
+ pip install -r requirements.txt
43
+ pip install build twine
44
+
45
+ - name: Build package
46
+ run: python -m build
47
+
48
+ - name: Create release tag
49
+ run: |
50
+ git config --local user.email "action@github.com"
51
+ git config --local user.name "GitHub Action"
52
+ git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
53
+ git push origin "v${{ github.event.inputs.version }}"
54
+
55
+ - name: Publish to PyPI
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ verbose: true
59
+ print-hash: true
@@ -0,0 +1,59 @@
1
+ name: Publish to TEST PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
8
+ required: true
9
+ type: string
10
+
11
+ jobs:
12
+ build-and-publish:
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://test.pypi.org/project/pipecat-cloud
17
+ permissions:
18
+ id-token: write # IMPORTANT: this permission is needed for trusted publishing
19
+ contents: write # Needed for tagging
20
+
21
+ steps:
22
+ - name: Checkout code
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v4
27
+ with:
28
+ python-version: '3.10'
29
+
30
+ - name: Verify version matches
31
+ run: |
32
+ pip install tomli
33
+ PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
34
+ if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
35
+ echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
36
+ exit 1
37
+ fi
38
+
39
+ - name: Install dependencies
40
+ run: |
41
+ python -m pip install --upgrade pip
42
+ pip install -r requirements.txt
43
+ pip install build twine
44
+
45
+ - name: Build package
46
+ run: python -m build
47
+
48
+ - name: Create release tag
49
+ run: |
50
+ git config --local user.email "action@github.com"
51
+ git config --local user.name "GitHub Action"
52
+ git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
53
+ git push origin "v${{ github.event.inputs.version }}"
54
+
55
+ - name: Publish to PyPI
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ verbose: true
59
+ print-hash: true
@@ -4,23 +4,27 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pipecatcloud"
7
- version = "0.0.8"
7
+ version = "0.0.10"
8
8
  requires-python = ">=3.10"
9
+ description = "Cloud hosting for Pipecat AI applications"
10
+ license = { text = "BSD 2-Clause License" }
11
+ readme = "README.md"
12
+ keywords = ["pipecat", "pipecat-ai", "voice", "ai", "llm"]
9
13
  dependencies = [
10
- "aiohttp~=3.10.10",
11
- "fastapi~=0.115.5",
12
- "loguru~=0.7.2",
14
+ "aiohttp~=3.11.13,<4.0.0",
15
+ "fastapi~=0.115.6",
16
+ "loguru~=0.7.3",
13
17
  "python-dotenv~=1.0.1",
14
18
  "uvicorn~=0.32.0",
15
19
  "typer~=0.13.0",
16
20
  "synchronicity~=0.7.6",
17
21
  "toml~=0.10.2",
18
- "questionary~=2.1.0",
22
+ "questionary~=2.1.0"
19
23
  ]
20
24
 
21
25
  [project.scripts]
22
26
  pcc = "pipecatcloud.__main__:main"
23
- pipecat = "pipecatcloud.__main__:main"
27
+ pipecatcloud = "pipecatcloud.__main__:main"
24
28
 
25
29
  [tool.setuptools]
26
30
  package-dir = {"" = "src"}
@@ -32,3 +36,6 @@ include = ["pipecatcloud*"]
32
36
  [tool.ruff]
33
37
  exclude = ["*_pb2.py"]
34
38
  line-length = 100
39
+
40
+ [project.urls]
41
+ Website = "https://docs.pipecat.daily.co/"
@@ -0,0 +1,33 @@
1
+ import os
2
+ import sys
3
+
4
+ from loguru import logger
5
+
6
+ from .exception import (
7
+ AgentNotHealthyError,
8
+ AgentStartError,
9
+ AuthError,
10
+ ConfigError,
11
+ ConfigFileError,
12
+ Error,
13
+ InvalidError,
14
+ )
15
+ from .session import Session, SessionParams
16
+
17
+ logger.remove()
18
+ logger.add(sys.stderr, level=str(os.getenv("PCC_LOG_LEVEL", "INFO")))
19
+
20
+
21
+ __all__ = [
22
+ # Session classes
23
+ "Session",
24
+ "SessionParams",
25
+ # Exception classes
26
+ "Error",
27
+ "ConfigFileError",
28
+ "AuthError",
29
+ "InvalidError",
30
+ "ConfigError",
31
+ "AgentNotHealthyError",
32
+ "AgentStartError",
33
+ ]