{"id":28237029,"url":"https://github.com/pyfunc/tts","last_synced_at":"2026-01-24T20:54:16.560Z","repository":{"id":293309657,"uuid":"983616625","full_name":"pyfunc/tts","owner":"pyfunc","description":"Cookiecutter based tts process","archived":false,"fork":false,"pushed_at":"2025-05-14T17:20:16.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-10T15:41:42.322Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pyfunc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-14T16:44:08.000Z","updated_at":"2025-05-14T17:20:20.000Z","dependencies_parsed_at":"2025-05-14T18:40:56.992Z","dependency_job_id":null,"html_url":"https://github.com/pyfunc/tts","commit_stats":null,"previous_names":["pyfunc/tts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pyfunc/tts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Ftts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Ftts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Ftts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Ftts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pyfunc","download_url":"https://codeload.github.com/pyfunc/tts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pyfunc%2Ftts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28736791,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-24T19:23:36.361Z","status":"ssl_error","status_checked_at":"2026-01-24T19:23:28.966Z","response_time":89,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-05-19T00:17:17.531Z","updated_at":"2026-01-24T20:54:16.543Z","avatar_url":"https://github.com/pyfunc.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# tts\n\nCookiecutter based tts process\n\n---\n\n## Spis treści\n1. [Wymagania wstępne](#wymagania-wstępne)\n2. [Instalacja pipx](#instalacja-pipx)\n3. [Instalacja Poetry](#instalacja-poetry)\n4. [Alternatywa: virtualenv i pip](#alternatywa-virtualenv-i-pip)\n5. [Uruchamianie projektu](#uruchamianie-projektu)\n6. [Tworzenie pluginów](#tworzenie-pluginów)\n7. [Materiały dodatkowe](#materiały-dodatkowe)\n\n---\n\n## Wymagania wstępne\n- Python 3.8+\n- pipx (zalecane)\n- Poetry (zalecane)\n\n## Instalacja pipx\n\n### macOS\n```bash\nbrew install pipx\npipx ensurepath\n```\n\n**Dodatkowe (opcjonalne) komendy:**\n```bash\nsudo pipx ensurepath --global\nsudo pipx ensurepath --prepend\n```\n\nWięcej: [Customising your installation](https://pipx.pypa.io/stable/installation/)\n\n### Linux\n#### Ubuntu 23.04 lub nowszy\n```bash\nsudo apt update\nsudo apt install pipx\npipx ensurepath\n```\n#### Fedora\n```bash\nsudo dnf install pipx\npipx ensurepath\n```\n#### Inne dystrybucje\n```bash\npython3 -m pip install --user pipx\npython3 -m pipx ensurepath\n```\n\n**Dodatkowe (opcjonalne) komendy:**\n```bash\nsudo pipx ensurepath --global\nsudo pipx ensurepath --prepend\n```\n\n### Windows\n#### Scoop\n```powershell\nscoop install pipx\npipx ensurepath\n```\n#### pip\n```powershell\npy -m pip install --user pipx\n```\nJeśli pojawi się ostrzeżenie o PATH, uruchom:\n```powershell\n.\\pipx.exe ensurepath\n```\n\n---\n\n## Instalacja Poetry\n\n### Linux/macOS\n```bash\ncurl -sSL https://install.python-poetry.org | python3 -\npip install poetry\nsudo apt install python3-poetry\n```\n### Windows (PowerShell)\n```powershell\n(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -\npip install poetry\n```\nPo instalacji sprawdź:\n```bash\npoetry --version\n```\n\n---\n\n## Alternatywa: virtualenv i pip\nJeśli nie chcesz używać Poetry:\n```bash\npython -m venv venv\n# Linux/macOS:\nsource venv/bin/activate\n# Windows:\nvenv\\Scripts\\activate\n```\n\n---\n\n## Uruchamianie projektu\n\n1. Zainstaluj zależności:\n```bash\npoetry install\n```\n2. Aktywuj środowisko:\n```bash\npoetry shell\n```\n3. Uruchom projekt zgodnie z instrukcją w sekcji Usage lub Development.\n\n---\n\n## Tworzenie pluginów\n1. Utwórz nowy moduł w `process/plugins/`\n2. Zaimplementuj klasę dziedziczącą po `ProcessBase`\n3. Zarejestruj plugin w `PluginRegistry`\n\nSzczegóły: [Developer Guide](docs/developer_guide.md)\n\n---\n\n## Materiały dodatkowe\n- [Oficjalna dokumentacja pipx](https://pipx.pypa.io/)\n- [Oficjalna dokumentacja Poetry](https://python-poetry.org/docs/)\n\n### Installing pipx\nOn macOS:\n\nbrew install pipx\npipx ensurepath\n\nAdditional (optional) commands\n\nTo allow pipx actions in global scope.\n\nsudo pipx ensurepath --global\n\nTo prepend the pipx bin directory to PATH instead of appending it.\n\nsudo pipx ensurepath --prepend\n\nFor more details, refer to Customising your installation.\nOn Linux:\n\n    Ubuntu 23.04 or above\n\nsudo apt update\nsudo apt install pipx\npipx ensurepath\n\n    Fedora:\n\nsudo dnf install pipx\npipx ensurepath\n\n    Using pip on other distributions:\n\npython3 -m pip install --user pipx\npython3 -m pipx ensurepath\n\nAdditional (optional) commands\n\nTo allow pipx actions in global scope.\n\nsudo pipx ensurepath --global\n\nTo prepend the pipx bin directory to PATH instead of appending it.\n\nsudo pipx ensurepath --prepend\n\nFor more details, refer to Customising your installation.\nOn Windows:\n\n    Install via Scoop:\n\nscoop install pipx\npipx ensurepath\n\n    Install via pip (requires pip 19.0 or later)\n\n# If you installed python using Microsoft Store, replace `py` with `python3` in the next line.\npy -m pip install --user pipx\n\nIt is possible (even most likely) the above finishes with a WARNING looking similar to this:\n\nWARNING: The script pipx.exe is installed in `\u003cUSER folder\u003e\\AppData\\Roaming\\Python\\Python3x\\Scripts` which is not on PATH\n\nIf so, go to the mentioned folder, allowing you to run the pipx executable directly. Enter the following line (even if you did not get the warning):\n\n.\\pipx.exe ensurepath\n\nThis will add both the above mentioned path and the %USERPROFILE%\\.local\\bin folder to your search path. Restart your terminal session and verify pipx does run.\n\n\n\n\n\nInstall Poetry\n\npipx install poetry\n\nInstall Poetry (advanced)\nYou can skip this step, if you simply want the latest version and already installed Poetry as described in the previous step. This step details advanced usages of this installation method. For example, installing Poetry from source, having multiple versions installed at the same time etc.\n\npipx can install different versions of Poetry, using the same syntax as pip:\n\npipx install poetry==1.8.4\n\npipx can also install versions of Poetry in parallel, which allows for easy testing of alternate or prerelease versions. Each version is given a unique, user-specified suffix, which will be used to create a unique binary name:\n\npipx install --suffix=@1.8.4 poetry==1.8.4\npoetry@1.8.4 --version\n\npipx install --suffix=@preview --pip-args=--pre poetry\npoetry@preview --version\n\nFinally, pipx can install any valid pip requirement spec, which allows for installations of the development version from git, or even for local testing of pull requests:\n\npipx install --suffix @main git+https://github.com/python-poetry/poetry.git@main\npipx install --suffix @pr1234 git+https://github.com/python-poetry/poetry.git@refs/pull/1234/head\n\nUpdate Poetry\n\npipx upgrade poetry\n\nUninstall Poetry\n\npipx uninstall poetry\n\n\n\n\n### Installing Poetry\n\nThis project uses Poetry for dependency management. To install Poetry:\n\n#### On Linux/macOS:\n\n```bash\n# Method 1: Using the official installer\ncurl -sSL https://install.python-poetry.org | python3 -\n\n# Method 2: Using pip\npip install poetry\n\n# Method 3: On Ubuntu/Debian\nsudo apt install python3-poetry\n```\n\n#### On Windows (PowerShell):\n\n```powershell\n# Method 1: Using the official installer\n(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -\n\n# Method 2: Using pip\npip install poetry\n```\n\nAfter installation, verify Poetry is installed correctly:\n\n```bash\npoetry --version\n```\n\n#### Alternative: Using virtualenv and pip\n\nIf you prefer not to install Poetry, you can use traditional virtualenv and pip:\n\n```bash\n# Create a virtual environment\npython -m venv venv\n\n# Activate the virtual environment\n# On Linux/macOS:\nsource venv/bin/activate\n# On Windows:\n# venv\\Scripts\\activate\n\n# Install dependencies from requirements.txt\npip install -r requirements.txt\n```\n\n### Creating New Modules\n\nThe Process system is designed to be modular. Here's how to create and set up new modules:\n\n#### 1. Create a new protocol module (e.g., for a new protocol like GraphQL):\n\n```bash\n# Create the directory structure\nmkdir -p graphql\ncd graphql\n\n# Initialize Poetry for the module\npoetry init\n\n# Add dependencies\npoetry add fastapi uvicorn graphql-core\n\n# Add development dependencies\npoetry add --group dev pytest black isort mypy\n\n# Create basic files\ntouch server.py client.py .env.example\n```\n\n#### 2. Create a new plugin for the Process engine:\n\n```bash\n# Navigate to the process directory\ncd process\n\n# Create a plugin directory if it doesn't exist\nmkdir -p plugins\n\n# Create a new plugin file\ntouch plugins/my_plugin.py\n```\n\nExample plugin implementation in `plugins/my_plugin.py`:\n\n```python\nfrom process.process_base import ProcessBase\nfrom process.plugin_system import register_plugin\n\nclass MyPlugin(ProcessBase):\n    \"\"\"Custom processing plugin.\"\"\"\n    \n    def process_text(self, text, **options):\n        \"\"\"Process text with custom logic.\"\"\"\n        # Implement your processing logic here\n        processed_text = text.upper()  # Example: convert to uppercase\n        \n        # Create and return a result\n        return self.create_result(\n            data=processed_text,\n            format=\"text\",\n            metadata={\"plugin\": \"my_plugin\"}\n        )\n\n# Register the plugin\nregister_plugin(\"my_plugin\", MyPlugin)\n```\n\n#### 3. Create a new service module with monitoring:\n\n```bash\n# Create the directory structure\nmkdir -p my_service\ncd my_service\n\n# Initialize Poetry for the module\npoetry init\n\n# Add dependencies\npoetry add prometheus-client healthcheck\n\n# Create basic files\ntouch server.py client.py .env.example\n```\n\nExample `.env.example` for the new service:\n\n```\n# My Service Environment Variables\nMY_SERVICE_HOST=0.0.0.0\nMY_SERVICE_PORT=8080\nMY_SERVICE_LOG_LEVEL=INFO\nMY_SERVICE_PROCESS_HOST=process\nMY_SERVICE_PROCESS_PORT=8000\n\n# Monitoring settings\nMY_SERVICE_ENABLE_METRICS=true\nMY_SERVICE_METRICS_PORT=9101\nMY_SERVICE_HEALTH_CHECK_INTERVAL=30\n\n# Core settings\nCORE_LOG_LEVEL=INFO\n```\n\n### Adding New Plugins\n\nThe Process system can be extended with plugins. To create a new plugin:\n\n1. Create a new module in the `process/plugins/` directory\n2. Implement a class that inherits from `ProcessBase`\n3. Register the plugin with the `PluginRegistry`\n\nSee the [Developer Guide](docs/developer_guide.md) for detailed instructions.\n\n### Creating New Service Interfaces\n\nYou can add new service interfaces (e.g., WebSocket) by following the pattern of existing services:\n\n1. Create a new directory for your service\n2. Implement a server that connects to the Process engine\n3. Implement a client for easy integration\n\nSee the [Modular Architecture](docs/modular_architecture.md) documentation for details.\n\n## Testing Modules\n\nEach module in the Process system can be tested independently. Here's how to test different components:\n\n### Testing the Process Engine\n\n```bash\n# Navigate to the process directory\ncd process\n\n# Run tests with Poetry\npoetry run pytest\n\n# Or with traditional pytest if not using Poetry\npython -m pytest\n```\n\n### Testing Protocol Implementations\n\n```bash\n# Example: Testing the gRPC service\ncd grpc\npoetry run pytest\n\n# Example: Testing the REST API\ncd rest\npoetry run pytest\n```\n\n### Testing Health Checks and Monitoring\n\nEach service exposes health check and metrics endpoints that can be tested:\n\n```bash\n# Start the service\ncd imap\npoetry run python server.py\n\n# In another terminal, test the health endpoint\ncurl http://localhost:8080/health\n\n# Test the metrics endpoint\ncurl http://localhost:9101/metrics\n```\n\n### End-to-End Testing\n\nTest the entire system with all services running:\n\n```bash\n# Start all services with Docker Compose\ndocker-compose up -d\n\n# Run end-to-end tests\ncd tests/e2e_tests\npython -m pytest\n```\n\n## Documentation\n\nDetailed documentation is available in the `docs/` directory:\n\n- [Developer Guide](docs/developer_guide.md) - Comprehensive guide for developers\n- [Modular Architecture](docs/modular_architecture.md) - Details on the system architecture\n- [Environment Variables](docs/environment_variables.md) - List of all configuration options\n- [API Reference](docs/api_reference.md) - API documentation for all components\n\n## Contributing\n\nContributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n---\n\n## Plik pyproject.toml\n\nProjekt korzysta z Poetry do zarządzania zależnościami. Jeśli plik `pyproject.toml` nie istnieje, utwórz go poleceniem:\n\n```bash\npoetry init\n```\n\nPrzykładowa zawartość pliku `pyproject.toml` dla tego projektu:\n\n```toml\n[tool.poetry]\nname = \"tts\"\nversion = \"0.1.0\"\ndescription = \"Cookiecutter based tts process\"\nauthors = [\"Twoje Imię \u003ctwoj@email.com\u003e\"]\nlicense = \"MIT\"\n\n[tool.poetry.dependencies]\npython = \"\u003e=3.8,\u003c4.0\"\n# Dodaj tu zależności projektu, np.:\n# numpy = \"^1.26.0\"\n# requests = \"^2.31.0\"\n\n[tool.poetry.dev-dependencies]\n# pytest = \"^7.0\"\n\n[build-system]\nrequires = [\"poetry-core\u003e=1.0.0\"]\nbuild-backend = \"poetry.core.masonry.api\"\n```\n\nPo utworzeniu pliku możesz instalować zależności i zarządzać środowiskiem za pomocą poleceń Poetry opisanych wyżej.\n\n---\n\n## Instalacja\n\n```bash\n# Instalacja zależności (jeśli nie została wykonana automatycznie)\npoetry install\n```\n\n\n\n\n## Uruchamianie\n\n\n\n\n\n\n\n\n\n\n\n2. Użycie cookiecutter jako alternatywy\nCookiecutter to popularne narzędzie do generowania projektów z szablonów. Możemy stworzyć dedykowany szablon cookiecutter dla projektów TTS.\n2.1. Instalacja cookiecutter\n\n```bash\npip install cookiecutter\n```\n\nUżycie szablonu z repozytorium GitHub\n```bash\ncookiecutter gh:pyfunc/cookiecutter\n```\n\nlub Użycie lokalnego szablonu\n```bash\ncookiecutter path/to/cookiecutter-tts-project/\n```\n\n\n\n\n\n```bash\n# Ustaw uprawnienia wykonywania dla skryptów\nchmod +x hooks/pre_gen_project.py\nchmod +x hooks/post_gen_project.py\n```\n```bash\n# Uruchomienie serwisów w kontenerach\nmake up\n```\n\n{% if cookiecutter.components.mcp %}\nAby uruchomić serwer MCP:\n```bash\ncd mcp\npoetry run python mcp_server.py\n```\n{% endif %}\n\n## Funkcjonalności\n\n- Modularny system z wieloma komponentami\n- Wsparcie dla różnych protokołów komunikacyjnych (gRPC, REST, WebRTC, MCP, MQTT, WebSocket)\n- Integracja z Model Context Protocol (MCP)\n- Narzędzia zapewnienia jakości kodu (Black, isort, Flake8, mypy)\n- Automatyczna konfiguracja pre-commit hooks\n- Comprehensive Makefile for common tasks\n- Konfiguracja Docker i docker-compose (opcjonalnie)\n\n## Konfiguracja\n\n### Konfiguracja szablonu\n\n- Konfiguracja projektu znajduje się w pliku `cookiecutter.json`.\n\n### Konfiguracja środowiska\n\nWygenerowany projekt używa spójnego systemu zmiennych środowiskowych z prefiksami dla każdego komponentu:\n\n- `CORE_*` - Ustawienia rdzenia frameworka\n- `PROCESS_*` - Ustawienia silnika Process\n- `GRPC_*` - Ustawienia usługi gRPC\n- `REST_*` - Ustawienia usługi REST API\n- `MCP_*` - Ustawienia usługi MCP\n- `MQTT_*` - Ustawienia usługi MQTT\n- `WEBSOCKET_*` - Ustawienia usługi WebSocket\n- `LANGCHAIN_*` - Ustawienia integracji LangChain\n\nMożna używać jednego pliku `.env` dla całego projektu lub oddzielnych plików dla każdego komponentu:\n\n```bash\n# Kopiowanie przykładowych plików środowiskowych\ncp .env.example .env\n\n# Lub dla poszczególnych komponentów\ncp process/.env.example process/.env\ncp grpc/.env.example grpc/.env\ncp rest/.env.example rest/.env\ncp mcp/.env.example mcp/.env\ncp mqtt/.env.example mqtt/.env\ncp websocket/.env.example websocket/.env\n```\n\nSzczegółowa dokumentacja zmiennych środowiskowych znajduje się w pliku `docs/environment_variables.md`.\n\n## Testy\n\n```bash\nmake test\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyfunc%2Ftts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpyfunc%2Ftts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpyfunc%2Ftts/lists"}