Name | tygent JSON |
Version |
0.4.0
JSON |
| download |
home_page | https://tygent.ai |
Summary | Transform LLM Agents into High-Performance Engines with DAG optimization |
upload_time | 2025-07-11 20:57:52 |
maintainer | None |
docs_url | None |
author | Tygent Team |
requires_python | >=3.7 |
license | CC BY-NC 4.0 |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Tygent Python - Speed & Efficiency Layer for AI Agents
[](https://github.com/tygent-ai/tygent-py/actions)
[](https://badge.fury.io/py/tygent)
[](https://www.python.org/downloads/)
[](https://creativecommons.org/licenses/by-nc/4.0/)
Transform your existing AI agents into high-performance engines with intelligent parallel execution and optimized scheduling. Tygent aims to speed up workflows and reduce costs with **no code changes required**.
## Quick Start
### Installation
```bash
pip install tygent
```
### Basic Usage - Accelerate Any Function
```python
from tygent import accelerate
# Your existing code
def research_topic(topic):
# Your existing research logic
return {"summary": f"Research on {topic}"}
# Wrap the function to run via Tygent's scheduler
accelerated_research = accelerate(research_topic)
result = accelerated_research("AI trends")
```
### Zero-Lift Framework Patching
```python
import asyncio
import tygent
# Apply patches for any installed integrations
tygent.install()
from google.generativeai import GenerativeModel
model = GenerativeModel("gemini-pro")
result = asyncio.run(model.generate_content("Hello"))
```
### Multi-Agent System
```python
import asyncio
from tygent import MultiAgentManager
# Create manager
manager = MultiAgentManager("customer_support")
# Add agents to the system
class AnalyzerAgent:
def analyze(self, question):
return {"intent": "password_reset", "keywords": ["reset", "password"]}
class ResearchAgent:
def search(self, keywords):
return {"help_docs": ["Reset guide", "Account recovery"]}
manager.add_agent("analyzer", AnalyzerAgent())
manager.add_agent("researcher", ResearchAgent())
# Execute with optimized communication
result = asyncio.run(
manager.execute({"question": "How do I reset my password?"})
)
```
## Key Features
- **π Speed Improvement**: Intelligent parallel execution of independent operations
- **π° Cost Reduction**: Optimized token usage and API call batching
- **π§ Zero Code Changes**: Drop-in acceleration for existing functions and agents
- **π§ Smart DAG Optimization**: Automatic dependency analysis and parallel scheduling
- **π Dynamic Adaptation**: Runtime DAG modification based on conditions and failures
- **π― Multi-Framework Support**: Works with CrewAI, HuggingFace, Google AI, and custom agents
- **π Plan Parsing**: Build DAGs directly from framework plans or dictionaries
- **π Auditing & Tracing**: Inspect plans, hook into node execution, and record results
## Architecture
Tygent uses Directed Acyclic Graphs (DAGs) to model and optimize your agent workflows:
```
Your Sequential Code: Tygent Optimized:
βββββββββββββββββββ βββββββββββββββββββ
β Step 1 β β Step 1 β
βββββββββββββββββββ βββββββββββββββββββ
β β
βββββββββββββββββββ βββββββββββ¬ββββββββ
β Step 2 β β β Step 2 βStep 3 β (Parallel)
βββββββββββββββββββ βββββββββββ΄ββββββββ
β β
βββββββββββββββββββ βββββββββββββββββββ
β Step 3 β β Step 4 β
βββββββββββββββββββ βββββββββββββββββββ
```
## Advanced Usage
### Dynamic DAG Modification
```python
from tygent import accelerate
from tygent.adaptive_executor import AdaptiveExecutor
# Workflow that adapts to failures and conditions
@accelerate
async def travel_planning_workflow(destination):
# Tygent automatically handles:
# - API failures with fallback services
# - Conditional branching based on weather
# - Resource-aware execution adaptation
weather = await get_weather(destination) # Primary API
# Auto-fallback to backup_weather_service if primary fails
if weather["condition"] == "rain":
# Dynamically adds indoor alternatives node
recommendations = await get_indoor_alternatives(destination)
else:
recommendations = await get_outdoor_activities(destination)
return recommendations
```
### Integration Examples
#### Example: Accelerating a LangChain Agent
```python
from tygent import accelerate
# Your existing LangChain agent
class MockLangChainAgent:
def run(self, query):
return f"LangChain response to: {query}"
agent = MockLangChainAgent()
# Accelerate it
accelerated_agent = accelerate(agent)
result = accelerated_agent.run("Analyze market trends")
```
#### Custom Multi-Agent System
```python
import asyncio
from tygent import DAG, LLMNode, MultiAgentManager, ToolNode
# Create a DAG for manual workflow control
dag = DAG("content_generation")
def research_function(inputs):
return {"research_data": f"Data about {inputs.get('topic', 'general')}"}
class SimpleLLMNode(LLMNode):
async def execute(self, inputs):
# Normally this would call an LLM; here we just format text
return {"outline": f"Outline for {inputs.get('research_data', '')}"}
dag.add_node(ToolNode("research", research_function))
dag.add_node(SimpleLLMNode("outline"))
dag.add_edge("research", "outline")
result = asyncio.run(dag.execute({"topic": "AI trends"}))
```
### Parsing Plans
Tygent can convert structured plans into executable DAGs with `parse_plan`.
```python
from tygent import Scheduler, accelerate, parse_plan
plan = {
"name": "math",
"steps": [
{"name": "add", "func": add_fn, "critical": True},
{"name": "mult", "func": mult_fn, "dependencies": ["add"]},
],
}
# Build a DAG manually
dag, critical = parse_plan(plan)
scheduler = Scheduler(dag)
scheduler.priority_nodes = critical
# Or accelerate the plan directly (works with frameworks exposing `get_plan`)
run_plan = accelerate(plan)
```
If you have multiple plans (e.g. produced by different LLMs) you can
combine them into a single DAG:
```python
from tygent import parse_plans, Scheduler
dag, critical = parse_plans([plan_a, plan_b])
scheduler = Scheduler(dag)
scheduler.priority_nodes = critical
```
## Testing
### Running Tests
Make sure to install the package in editable mode before executing the tests.
```bash
# Install test dependencies
pip install pytest pytest-asyncio
# Install package in development mode
pip install -e .
# Run core tests (always pass)
pytest tests/test_dag.py tests/test_multi_agent.py -v
# Run all tests
pytest tests/ -v
# Run with coverage
pytest tests/ --cov=tygent --cov-report=html
```
### Test Coverage
Our test suite covers:
- **Core DAG functionality**: Node management, topological sorting, parallel execution
- **Multi-agent communication**: Message passing, agent orchestration, conversation history
- **Async operations**: Proper async/await handling, concurrent execution
- **Error handling**: Graceful failure recovery, fallback mechanisms
**Current Status**: 14/14 core tests passing β
#### Recent Test Fixes (v1.1)
- Fixed Message interface to match TypedDict implementation
- Corrected async timestamp handling using `asyncio.get_event_loop().time()`
- Added pytest.ini configuration for proper async test support
- Updated MultiAgentManager constructor calls with required name parameter
- Removed dependencies on non-existent classes (AgentRole, OptimizationSettings)
### CI/CD
GitHub Actions workflow automatically runs:
- **Multi-version testing**: Python 3.8, 3.9, 3.10, 3.11
- **Multi-platform**: Ubuntu, macOS, Windows
- **Code quality**: flake8 linting, black formatting, mypy type checking
- **Package building**: Automated wheel and source distribution creation
- **PyPI publishing**: Automatic publishing on main branch pushes
- **Coverage reporting**: HTML and LCOV coverage reports
Triggers: Every push and pull request to main/develop branches
## Framework Integrations
### Supported Frameworks
- **CrewAI**: Multi-agent coordination
- **Microsoft Semantic Kernel**: Plugin optimization
- **LangSmith**: Experiment tracking integration
- **LangFlow**: Visual workflow authoring
- **Custom Agents**: Universal function acceleration
### External Service Integrations
- **OpenAI**: GPT-4, GPT-3.5-turbo optimization
- **Google AI**: Gemini model integration
- **Microsoft Azure**: Azure OpenAI service
- **Salesforce**: Einstein AI and CRM operations
- **HuggingFace**: Transformer models
## Performance Benchmarks
Benchmark tests live under `tests/benchmarks/` and compare sequential
execution with Tygent's scheduler. Typical results on a small DAG of four
dependent tasks:
| Scenario | Time (s) |
|--------------------------|---------:|
| Sequential execution | ~0.70 |
| Scheduler (1 worker) | ~0.72 |
| Scheduler (2 workers) | ~0.52 |
Run the benchmarks using:
```bash
pip install -e .
pytest tests/benchmarks/ -v
```
## Development
### Project Structure
```
tygent-py/
βββ tygent/
β βββ __init__.py # Main exports
β βββ accelerate.py # Core acceleration wrapper
β βββ dag.py # DAG implementation
β βββ nodes.py # Node types (Tool, LLM, etc.)
β βββ scheduler.py # Execution scheduler
β βββ multi_agent.py # Multi-agent system
β βββ adaptive_executor.py # Dynamic DAG modification
β βββ integrations/ # Framework integrations
βββ tests/ # Test suite
βββ examples/ # Usage examples
βββ docs/ # Documentation
```
### Contributing
1. Fork the repository
2. Create a feature branch: `git checkout -b feature-name`
3. Install development dependencies: `pip install -e ".[dev]"`
4. Run tests: `pytest tests/ -v`
5. Commit changes: `git commit -am 'Add feature'`
6. Push to branch: `git push origin feature-name`
7. Submit a pull request
### Code Quality
- **Type hints**: Full type annotation coverage
- **Testing**: Comprehensive test suite with >90% coverage
- **Linting**: Black formatting, flake8 compliance
- **Documentation**: Detailed docstrings and examples
## License
Creative Commons Attribution-NonCommercial 4.0 International License.
See [LICENSE](LICENSE) for details.
## Support
- **Documentation**: [https://tygent.ai/docs](https://tygent.ai/docs)
- **Issues**: [GitHub Issues](https://github.com/tygent-ai/tygent-py/issues)
- **Discussions**: [GitHub Discussions](https://github.com/tygent-ai/tygent-py/discussions)
- **Email**: support@tygent.ai
---
**Transform your agents. Accelerate your AI.**
Raw data
{
"_id": null,
"home_page": "https://tygent.ai",
"name": "tygent",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.7",
"maintainer_email": null,
"keywords": null,
"author": "Tygent Team",
"author_email": "Tygent AI <info@tygent.ai>",
"download_url": "https://files.pythonhosted.org/packages/ca/e8/22ac99b6f363b713fd690f018c05b54689c58f3ea2cf242a3d4c1eae9606/tygent-0.4.0.tar.gz",
"platform": null,
"description": "# Tygent Python - Speed & Efficiency Layer for AI Agents\n\n[](https://github.com/tygent-ai/tygent-py/actions)\n[](https://badge.fury.io/py/tygent)\n[](https://www.python.org/downloads/)\n[](https://creativecommons.org/licenses/by-nc/4.0/)\n\nTransform your existing AI agents into high-performance engines with intelligent parallel execution and optimized scheduling. Tygent aims to speed up workflows and reduce costs with **no code changes required**.\n\n## Quick Start\n\n### Installation\n\n```bash\npip install tygent\n```\n\n### Basic Usage - Accelerate Any Function\n\n```python\nfrom tygent import accelerate\n\n\n# Your existing code\ndef research_topic(topic):\n # Your existing research logic\n return {\"summary\": f\"Research on {topic}\"}\n\n# Wrap the function to run via Tygent's scheduler\naccelerated_research = accelerate(research_topic)\nresult = accelerated_research(\"AI trends\")\n```\n\n### Zero-Lift Framework Patching\n\n```python\nimport asyncio\n\nimport tygent\n\n# Apply patches for any installed integrations\ntygent.install()\n\nfrom google.generativeai import GenerativeModel\n\nmodel = GenerativeModel(\"gemini-pro\")\nresult = asyncio.run(model.generate_content(\"Hello\"))\n```\n\n### Multi-Agent System\n\n```python\nimport asyncio\n\nfrom tygent import MultiAgentManager\n\n# Create manager\nmanager = MultiAgentManager(\"customer_support\")\n\n# Add agents to the system\nclass AnalyzerAgent:\n def analyze(self, question):\n return {\"intent\": \"password_reset\", \"keywords\": [\"reset\", \"password\"]}\n\nclass ResearchAgent:\n def search(self, keywords):\n return {\"help_docs\": [\"Reset guide\", \"Account recovery\"]}\n\nmanager.add_agent(\"analyzer\", AnalyzerAgent())\nmanager.add_agent(\"researcher\", ResearchAgent())\n\n# Execute with optimized communication\nresult = asyncio.run(\n manager.execute({\"question\": \"How do I reset my password?\"})\n)\n```\n\n## Key Features\n\n- **\ud83d\ude80 Speed Improvement**: Intelligent parallel execution of independent operations\n- **\ud83d\udcb0 Cost Reduction**: Optimized token usage and API call batching\n- **\ud83d\udd27 Zero Code Changes**: Drop-in acceleration for existing functions and agents\n- **\ud83e\udde0 Smart DAG Optimization**: Automatic dependency analysis and parallel scheduling\n- **\ud83d\udd04 Dynamic Adaptation**: Runtime DAG modification based on conditions and failures\n- **\ud83c\udfaf Multi-Framework Support**: Works with CrewAI, HuggingFace, Google AI, and custom agents\n- **\ud83d\udcc4 Plan Parsing**: Build DAGs directly from framework plans or dictionaries\n- **\ud83d\udccb Auditing & Tracing**: Inspect plans, hook into node execution, and record results\n\n## Architecture\n\nTygent uses Directed Acyclic Graphs (DAGs) to model and optimize your agent workflows:\n\n```\nYour Sequential Code: Tygent Optimized:\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Step 1 \u2502 \u2502 Step 1 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2502 \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u252c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Step 2 \u2502 \u2192 \u2502 Step 2 \u2502Step 3 \u2502 (Parallel)\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2534\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n \u2502 \u2502\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502 Step 3 \u2502 \u2502 Step 4 \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518 \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n```\n\n## Advanced Usage\n\n### Dynamic DAG Modification\n\n```python\nfrom tygent import accelerate\nfrom tygent.adaptive_executor import AdaptiveExecutor\n\n\n# Workflow that adapts to failures and conditions\n@accelerate\nasync def travel_planning_workflow(destination):\n # Tygent automatically handles:\n # - API failures with fallback services\n # - Conditional branching based on weather\n # - Resource-aware execution adaptation\n \n weather = await get_weather(destination) # Primary API\n # Auto-fallback to backup_weather_service if primary fails\n \n if weather[\"condition\"] == \"rain\":\n # Dynamically adds indoor alternatives node\n recommendations = await get_indoor_alternatives(destination)\n else:\n recommendations = await get_outdoor_activities(destination)\n \n return recommendations\n```\n\n### Integration Examples\n\n#### Example: Accelerating a LangChain Agent\n```python\nfrom tygent import accelerate\n\n\n# Your existing LangChain agent\nclass MockLangChainAgent:\n def run(self, query):\n return f\"LangChain response to: {query}\"\n\nagent = MockLangChainAgent()\n\n# Accelerate it\naccelerated_agent = accelerate(agent)\nresult = accelerated_agent.run(\"Analyze market trends\")\n```\n\n#### Custom Multi-Agent System\n```python\nimport asyncio\n\nfrom tygent import DAG, LLMNode, MultiAgentManager, ToolNode\n\n# Create a DAG for manual workflow control\ndag = DAG(\"content_generation\")\n\ndef research_function(inputs):\n return {\"research_data\": f\"Data about {inputs.get('topic', 'general')}\"}\n\nclass SimpleLLMNode(LLMNode):\n async def execute(self, inputs):\n # Normally this would call an LLM; here we just format text\n return {\"outline\": f\"Outline for {inputs.get('research_data', '')}\"}\n\ndag.add_node(ToolNode(\"research\", research_function))\ndag.add_node(SimpleLLMNode(\"outline\"))\ndag.add_edge(\"research\", \"outline\")\n\nresult = asyncio.run(dag.execute({\"topic\": \"AI trends\"}))\n```\n\n### Parsing Plans\n\nTygent can convert structured plans into executable DAGs with `parse_plan`.\n\n```python\nfrom tygent import Scheduler, accelerate, parse_plan\n\nplan = {\n \"name\": \"math\",\n \"steps\": [\n {\"name\": \"add\", \"func\": add_fn, \"critical\": True},\n {\"name\": \"mult\", \"func\": mult_fn, \"dependencies\": [\"add\"]},\n ],\n}\n\n# Build a DAG manually\ndag, critical = parse_plan(plan)\nscheduler = Scheduler(dag)\nscheduler.priority_nodes = critical\n\n# Or accelerate the plan directly (works with frameworks exposing `get_plan`)\nrun_plan = accelerate(plan)\n```\n\nIf you have multiple plans (e.g. produced by different LLMs) you can\ncombine them into a single DAG:\n\n```python\nfrom tygent import parse_plans, Scheduler\n\ndag, critical = parse_plans([plan_a, plan_b])\nscheduler = Scheduler(dag)\nscheduler.priority_nodes = critical\n```\n\n## Testing\n\n### Running Tests\n\nMake sure to install the package in editable mode before executing the tests.\n\n```bash\n# Install test dependencies\npip install pytest pytest-asyncio\n\n# Install package in development mode\npip install -e .\n\n# Run core tests (always pass)\npytest tests/test_dag.py tests/test_multi_agent.py -v\n\n# Run all tests\npytest tests/ -v\n\n# Run with coverage\npytest tests/ --cov=tygent --cov-report=html\n```\n\n### Test Coverage\n\nOur test suite covers:\n- **Core DAG functionality**: Node management, topological sorting, parallel execution\n- **Multi-agent communication**: Message passing, agent orchestration, conversation history\n- **Async operations**: Proper async/await handling, concurrent execution\n- **Error handling**: Graceful failure recovery, fallback mechanisms\n\n**Current Status**: 14/14 core tests passing \u2705\n\n#### Recent Test Fixes (v1.1)\n- Fixed Message interface to match TypedDict implementation\n- Corrected async timestamp handling using `asyncio.get_event_loop().time()`\n- Added pytest.ini configuration for proper async test support\n- Updated MultiAgentManager constructor calls with required name parameter\n- Removed dependencies on non-existent classes (AgentRole, OptimizationSettings)\n\n### CI/CD\n\nGitHub Actions workflow automatically runs:\n- **Multi-version testing**: Python 3.8, 3.9, 3.10, 3.11\n- **Multi-platform**: Ubuntu, macOS, Windows \n- **Code quality**: flake8 linting, black formatting, mypy type checking\n- **Package building**: Automated wheel and source distribution creation\n- **PyPI publishing**: Automatic publishing on main branch pushes\n- **Coverage reporting**: HTML and LCOV coverage reports\n\nTriggers: Every push and pull request to main/develop branches\n\n## Framework Integrations\n\n### Supported Frameworks\n- **CrewAI**: Multi-agent coordination\n- **Microsoft Semantic Kernel**: Plugin optimization\n- **LangSmith**: Experiment tracking integration\n- **LangFlow**: Visual workflow authoring\n- **Custom Agents**: Universal function acceleration\n\n### External Service Integrations\n- **OpenAI**: GPT-4, GPT-3.5-turbo optimization\n- **Google AI**: Gemini model integration\n- **Microsoft Azure**: Azure OpenAI service\n- **Salesforce**: Einstein AI and CRM operations\n- **HuggingFace**: Transformer models\n\n## Performance Benchmarks\n\nBenchmark tests live under `tests/benchmarks/` and compare sequential\nexecution with Tygent's scheduler. Typical results on a small DAG of four\ndependent tasks:\n\n| Scenario | Time (s) |\n|--------------------------|---------:|\n| Sequential execution | ~0.70 |\n| Scheduler (1 worker) | ~0.72 |\n| Scheduler (2 workers) | ~0.52 |\n\nRun the benchmarks using:\n\n```bash\npip install -e .\npytest tests/benchmarks/ -v\n```\n\n## Development\n\n### Project Structure\n```\ntygent-py/\n\u251c\u2500\u2500 tygent/\n\u2502 \u251c\u2500\u2500 __init__.py # Main exports\n\u2502 \u251c\u2500\u2500 accelerate.py # Core acceleration wrapper\n\u2502 \u251c\u2500\u2500 dag.py # DAG implementation\n\u2502 \u251c\u2500\u2500 nodes.py # Node types (Tool, LLM, etc.)\n\u2502 \u251c\u2500\u2500 scheduler.py # Execution scheduler\n\u2502 \u251c\u2500\u2500 multi_agent.py # Multi-agent system\n\u2502 \u251c\u2500\u2500 adaptive_executor.py # Dynamic DAG modification\n\u2502 \u2514\u2500\u2500 integrations/ # Framework integrations\n\u251c\u2500\u2500 tests/ # Test suite\n\u251c\u2500\u2500 examples/ # Usage examples\n\u2514\u2500\u2500 docs/ # Documentation\n```\n\n### Contributing\n\n1. Fork the repository\n2. Create a feature branch: `git checkout -b feature-name`\n3. Install development dependencies: `pip install -e \".[dev]\"`\n4. Run tests: `pytest tests/ -v`\n5. Commit changes: `git commit -am 'Add feature'`\n6. Push to branch: `git push origin feature-name`\n7. Submit a pull request\n\n### Code Quality\n\n- **Type hints**: Full type annotation coverage\n- **Testing**: Comprehensive test suite with >90% coverage\n- **Linting**: Black formatting, flake8 compliance\n- **Documentation**: Detailed docstrings and examples\n\n## License\n\nCreative Commons Attribution-NonCommercial 4.0 International License.\n\nSee [LICENSE](LICENSE) for details.\n\n## Support\n\n- **Documentation**: [https://tygent.ai/docs](https://tygent.ai/docs)\n- **Issues**: [GitHub Issues](https://github.com/tygent-ai/tygent-py/issues)\n- **Discussions**: [GitHub Discussions](https://github.com/tygent-ai/tygent-py/discussions)\n- **Email**: support@tygent.ai\n\n---\n\n**Transform your agents. Accelerate your AI.**\n",
"bugtrack_url": null,
"license": "CC BY-NC 4.0",
"summary": "Transform LLM Agents into High-Performance Engines with DAG optimization",
"version": "0.4.0",
"project_urls": {
"Bug Tracker": "https://github.com/tygent-ai/tygent-py/issues",
"Documentation": "https://tygent.ai/docs",
"Homepage": "https://github.com/tygent-ai/tygent-py"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "0f4842c147d834315d322a7b3004c9e32547ecf75683056727ef3911be9b837f",
"md5": "11d9f140bd9f99bc509af4e802cd1067",
"sha256": "20bcba772052ac9d388a5be11b4826735853d6ab36ff377098381dad32428a1d"
},
"downloads": -1,
"filename": "tygent-0.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "11d9f140bd9f99bc509af4e802cd1067",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7",
"size": 41951,
"upload_time": "2025-07-11T20:57:50",
"upload_time_iso_8601": "2025-07-11T20:57:50.926975Z",
"url": "https://files.pythonhosted.org/packages/0f/48/42c147d834315d322a7b3004c9e32547ecf75683056727ef3911be9b837f/tygent-0.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cae822ac99b6f363b713fd690f018c05b54689c58f3ea2cf242a3d4c1eae9606",
"md5": "20d73d7a2a3731af82f242faa9d283e4",
"sha256": "0dfefaa1ac3466fd162784860e19de8c085742b709180c6bef996753856766dd"
},
"downloads": -1,
"filename": "tygent-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "20d73d7a2a3731af82f242faa9d283e4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7",
"size": 40589,
"upload_time": "2025-07-11T20:57:52",
"upload_time_iso_8601": "2025-07-11T20:57:52.466871Z",
"url": "https://files.pythonhosted.org/packages/ca/e8/22ac99b6f363b713fd690f018c05b54689c58f3ea2cf242a3d4c1eae9606/tygent-0.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-11 20:57:52",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tygent-ai",
"github_project": "tygent-py",
"github_not_found": true,
"lcname": "tygent"
}