quantalogic 0.58.0__py3-none-any.whl → 0.59.0__py3-none-any.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: quantalogic
3
- Version: 0.58.0
3
+ Version: 0.59.0
4
4
  Summary: QuantaLogic ReAct Agents
5
5
  Author: Raphaël MANSUY
6
6
  Author-email: raphael.mansuy@gmail.com
@@ -47,13 +47,10 @@ Requires-Dist: types-pyyaml (>=6.0.12.20241230,<7.0.0.0)
47
47
  Requires-Dist: typing-extensions (>=4.12.2,<5.0.0)
48
48
  Description-Content-Type: text/markdown
49
49
 
50
- # QuantaLogic
51
-
52
- [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
53
- [![Python](https://img.shields.io/badge/Python-3.12+-blue.svg)](https://www.python.org/downloads/)
50
+ https://img.shields.io/badge/Python-3.12+-blue.svg)](https://www.python.org/downloads/)
54
51
  [![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://quantalogic.github.io/quantalogic/)
55
52
 
56
- Hey there, welcome to **QuantaLogic**—your cosmic toolkit for crafting AI agents and workflows that shine! Whether you’re coding up a storm, automating a business process, or dreaming up something wild, QuantaLogic is here to make it happen. We’re talking **large language models (LLMs)** fused with a stellar toolset, featuring two powerhouse approaches: the **ReAct framework** for dynamic problem-solving and the dazzling new **Flow module** for structured brilliance.
53
+ Hey there, welcome to **QuantaLogic**—your cosmic toolkit for crafting AI agents and workflows that shine! Whether you’re coding up a storm, automating a business process, chatting with a clever assistant, or dreaming up something wild, QuantaLogic is here to make it happen. We’re talking **large language models (LLMs)** fused with a stellar toolset, featuring three powerhouse approaches: the **ReAct framework** for dynamic problem-solving, the dazzling new **Flow module** for structured brilliance, and a shiny **Chat mode** for conversational magic with tool-calling capabilities.
57
54
 
58
55
  Picture this: a CLI that’s as easy as a snap, a Python API that’s pure magic, and a framework that scales from quick hacks to galactic enterprises. Ready to launch? Let’s blast off!
59
56
 
@@ -68,7 +65,7 @@ Picture this: a CLI that’s as easy as a snap, a Python API that’s pure magic
68
65
 
69
66
  ## Why QuantaLogic?
70
67
 
71
- At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing AI models from OpenAI, Anthropic, and DeepSeek weren’t fully lighting up real-world tasks. Our mission? Ignite that spark! We’re here to make generative AI a breeze for developers, businesses, and dreamers alike—turning ideas into action, one brilliant solution at a time.
68
+ At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing AI models from OpenAI, Anthropic, and DeepSeek weren’t fully lighting up real-world tasks. Our mission? Ignite that spark! We’re here to make generative AI a breeze for developers, businesses, and dreamers alike—turning ideas into action, one brilliant solution at a time, whether through task-solving, structured workflows, or natural conversation.
72
69
 
73
70
  > "AI should be your co-pilot, not a puzzle. QuantaLogic makes it happen—fast, fun, and fearless!"
74
71
 
@@ -78,6 +75,7 @@ At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing
78
75
 
79
76
  - **ReAct Framework**: Reasoning + action = unstoppable agents!
80
77
  - **Flow Module**: Structured workflows that flow like a river.
78
+ - **Chat Mode**: Conversational brilliance with tool-calling powers.
81
79
  - **LLM Galaxy**: Tap into OpenAI, DeepSeek, and more via LiteLLM.
82
80
  - **Secure Tools**: Docker-powered safety for code and files.
83
81
  - **Live Monitoring**: Watch it unfold with a web interface and SSE.
@@ -96,7 +94,8 @@ At [QuantaLogic](https://www.quantalogic.app), we spotted a black hole: amazing
96
94
  - [Flow Module: Structured Workflows](#flow-module-structured-workflows)
97
95
  - 📘 **[Workflow YAML DSL Specification](./quantalogic/flow/flow_yaml.md)**: Comprehensive guide to defining powerful, structured workflows using our Domain-Specific Language
98
96
  - 📚 **[Flow YAML Documentation](./quantalogic/flow/flow_yaml)**: Dive into the official documentation for a deeper understanding of Flow YAML and its applications
99
- - [ReAct vs. Flow: Pick Your Power](#react-vs-flow-pick-your-power)
97
+ - [Chat Mode: Conversational Power](#chat-mode-conversational-power)
98
+ - [ReAct vs. Flow vs. Chat: Pick Your Power](#react-vs-flow-vs-chat-pick-your-power)
100
99
  - [Using the CLI](#using-the-cli)
101
100
  - [Examples That Spark Joy](#examples-that-spark-joy)
102
101
  - [Core Components](#core-components)
@@ -148,6 +147,12 @@ quantalogic task "Write a Python function for Fibonacci numbers"
148
147
  ```
149
148
  > Boom! ReAct whips up a solution in seconds.
150
149
 
150
+ ### CLI: Chat Mode
151
+ ```bash
152
+ quantalogic chat --persona "You are a witty space explorer" "Tell me about Mars with a search"
153
+ ```
154
+ > Chat mode engages, uses tools if needed, and delivers a conversational response!
155
+
151
156
  ### Python: ReAct Agent
152
157
  ```python
153
158
  from quantalogic import Agent
@@ -158,8 +163,17 @@ print(result)
158
163
  # Output: "def fib(n): return [0, 1] if n <= 2 else fib(n-1) + [fib(n-1)[-1] + fib(n-1)[-2]]"
159
164
  ```
160
165
 
161
- ### Synchronous Agent Example
166
+ ### Python: Chat Mode
167
+ ```python
168
+ from quantalogic import Agent
162
169
 
170
+ agent = Agent(model_name="gpt-4o", chat_system_prompt="You are a friendly guide")
171
+ response = agent.chat("What's the weather like in Tokyo?")
172
+ print(response)
173
+ # Engages in conversation, potentially calling a weather tool if configured
174
+ ```
175
+
176
+ ### Synchronous Agent Example
163
177
  ```python
164
178
  from quantalogic import Agent
165
179
 
@@ -176,7 +190,6 @@ print(result)
176
190
  ```
177
191
 
178
192
  ### Async Agent Example 🌊
179
-
180
193
  ```python
181
194
  import asyncio
182
195
  from quantalogic import Agent
@@ -400,9 +413,6 @@ print(result["chapter"])
400
413
  ```
401
414
 
402
415
  ### Example: Story Generator Agent
403
-
404
- Here's a more complex example showing a complete story generation workflow using the Flow module:
405
-
406
416
  ```python
407
417
  from typing import List
408
418
  import anyio
@@ -499,22 +509,72 @@ Think content pipelines, automation flows, or any multi-step task that needs ord
499
509
 
500
510
  ---
501
511
 
502
- ## ReAct vs. Flow: Pick Your Power
512
+ ## Chat Mode: Conversational Power
513
+
514
+ The **Chat mode** is your conversational companion—engaging, flexible, and tool-savvy. Built on the same robust ReAct foundation, it lets you chat naturally with an AI persona while seamlessly integrating tool calls when needed. Perfect for interactive dialogues or quick queries with a dash of utility.
515
+
516
+ ### How It Works
517
+ 1. **You Chat**: "What’s the weather like today?"
518
+ 2. **It Responds**: Engages conversationally, deciding if a tool (like a weather lookup) is needed.
519
+ 3. **Tool Magic**: If required, it calls tools using the same XML-based system as ReAct, then weaves the results into the conversation.
520
+ 4. **Keeps Going**: Maintains context for a smooth, flowing chat.
521
+
522
+ ### Example: CLI Chat with Tool Call
523
+ ```bash
524
+ quantalogic chat --persona "You are a helpful travel guide" "Find me flights to Paris"
525
+ ```
526
+ > The agent chats back: "Looking up flights to Paris… Here are some options from a search tool: [flight details]. Anything else I can help with?"
527
+
528
+ ### Example: Python Chat with Tool Call
529
+ ```python
530
+ from quantalogic import Agent
531
+ from quantalogic.tools import DuckDuckGoSearchTool
532
+
533
+ agent = Agent(
534
+ model_name="gpt-4o",
535
+ chat_system_prompt="You are a curious explorer",
536
+ tools=[DuckDuckGoSearchTool()]
537
+ )
538
+ response = agent.chat("Tell me about the tallest mountain")
539
+ print(response)
540
+ # Might output: "I’ll look that up! The tallest mountain is Mount Everest, standing at 8,848 meters, according to a quick search."
541
+ ```
542
+
543
+ ### Tool Integration
544
+ Chat mode uses the same tool-calling mechanism as ReAct:
545
+ ```xml
546
+ <action>
547
+ <duckduckgo_tool>
548
+ <query>tallest mountain</query>
549
+ <max_results>5</max_results>
550
+ </duckduckgo_tool>
551
+ </action>
552
+ ```
553
+ - Tools are auto-executed (configurable with `--auto-tool-call`) and results are formatted naturally.
554
+ - Prioritize specific tools with `--tool-mode` (e.g., `search` or `code`).
555
+
556
+ ### Why It’s Awesome
557
+ Ideal for casual chats, quick info lookups, or interactive assistance with tool-powered precision—without the rigid task-solving structure of ReAct.
558
+
559
+ ---
560
+
561
+ ## ReAct vs. Flow vs. Chat: Pick Your Power
503
562
 
504
- Both are stellar, but here’s the scoop:
563
+ All three modes are stellar, but here’s the scoop:
505
564
 
506
- | Feature | ReAct Framework | Flow Module |
507
- |---------------------|--------------------------------|--------------------------------|
508
- | **Vibe** | Free-spirited, adaptive | Organized, predictable |
509
- | **Flow** | Loops ‘til it’s solved | Follows a roadmap |
510
- | **Sweet Spot** | Creative chaos (coding, Q&A) | Steady workflows (pipelines) |
511
- | **State** | Memory keeps it loose | Nodes lock it down |
512
- | **Tools** | Grabbed as needed | Baked into nodes |
513
- | **Watch It** | Events like `task_complete` | Observers like `NODE_STARTED` |
565
+ | Feature | ReAct Framework | Flow Module | Chat Mode |
566
+ |---------------------|--------------------------|--------------------------|--------------------------|
567
+ | **Vibe** | Free-spirited, adaptive | Organized, predictable | Conversational, flexible |
568
+ | **Flow** | Loops ‘til it’s solved | Follows a roadmap | Flows with the chat |
569
+ | **Sweet Spot** | Creative chaos (coding, Q&A) | Steady workflows (pipelines) | Casual chats, quick queries |
570
+ | **State** | Memory keeps it loose | Nodes lock it down | Context keeps it flowing |
571
+ | **Tools** | Grabbed as needed | Baked into nodes | Called when relevant |
572
+ | **Watch It** | Events like `task_complete` | Observers like `NODE_STARTED` | Events like `chat_response` |
514
573
 
515
574
  ### When to Choose
516
575
  - **ReAct**: Code on-the-fly, explore answers, debug like a pro.
517
576
  - **Flow**: Build a pipeline, automate a process, keep it tight.
577
+ - **Chat**: Converse naturally, get quick answers, use tools on demand.
518
578
 
519
579
  ---
520
580
 
@@ -542,6 +602,10 @@ Use a `.env` file or export these variables in your shell for seamless integrati
542
602
  ```bash
543
603
  quantalogic task "Summarize this file" --file notes.txt
544
604
  ```
605
+ - **`chat`**: Start a conversation.
606
+ ```bash
607
+ quantalogic chat --persona "You are a tech guru" "What’s new in AI?"
608
+ ```
545
609
  - **`list-models`**: List supported LiteLLM models with optional fuzzy search.
546
610
  ```bash
547
611
  quantalogic list-models --search "gpt"
@@ -556,14 +620,17 @@ Use a `.env` file or export these variables in your shell for seamless integrati
556
620
  - `deepseek/deepseek-reasoner`
557
621
  - `openrouter/deepseek/deepseek-r1`
558
622
  - `openrouter/openai/gpt-4o`
559
- - **`--mode [code|basic|interpreter|full|code-basic|search|search-full]`**: Agent mode
623
+ - **`--mode [code|basic|interpreter|full|code-basic|search|search-full|chat]`**: Agent mode
560
624
  - **`--vision-model-name TEXT`**: Specify the vision model to use (litellm format)
561
625
  - **`--log [info|debug|warning]`**: Set logging level
562
626
  - **`--verbose`**: Enable verbose output
563
- - **`--max-iterations INTEGER`**: Maximum number of iterations (default: 30)
627
+ - **`--max-iterations INTEGER`**: Maximum number of iterations (default: 30, task mode only)
564
628
  - **`--max-tokens-working-memory INTEGER`**: Set the maximum tokens allowed in working memory
565
629
  - **`--compact-every-n-iteration INTEGER`**: Set the frequency of memory compaction
566
630
  - **`--thinking-model TEXT`**: The thinking model to use
631
+ - **`--persona TEXT`**: Set the chat persona (chat mode only)
632
+ - **`--tool-mode TEXT`**: Prioritize a tool or toolset (chat mode only)
633
+ - **`--auto-tool-call`**: Enable/disable auto tool execution (chat mode only, default: True)
567
634
  - **`--version`**: Show version information
568
635
 
569
636
  > **Tip**: Run `quantalogic --help` for the complete command reference!
@@ -608,6 +675,12 @@ quantalogic task "Solve 2x + 5 = 15"
608
675
  ```
609
676
  > Output: "Let’s solve it! 2x + 5 = 15 → 2x = 10 → x = 5. Done!"
610
677
 
678
+ ### Bonus: Chat Query
679
+ ```bash
680
+ quantalogic chat "Search for the latest AI breakthroughs"
681
+ ```
682
+ > Output: "I’ll dig into that! Here’s what I found with a search: [latest AI news]. Pretty cool, right?"
683
+
611
684
  ---
612
685
 
613
686
  ## Core Components
@@ -621,6 +694,11 @@ quantalogic task "Solve 2x + 5 = 15"
621
694
  - **Nodes**: Your task blocks.
622
695
  - **Engine**: The maestro of execution.
623
696
 
697
+ ### Chat Mode
698
+ - **Persona**: Customizable conversational style.
699
+ - **Tools**: Integrated seamlessly via ReAct’s system.
700
+ - **Context**: Keeps the conversation flowing.
701
+
624
702
  ### Tools Arsenal
625
703
  - **Code**: `PythonTool`, `NodeJsTool`.
626
704
  - **Files**: `ReadFileTool`, `WriteFileTool`.
@@ -679,9 +757,6 @@ result = weather_tool.execute(city="New York") # Execute as a tool
679
757
  ```
680
758
 
681
759
  #### Using Custom Tools with ReAct Agent
682
-
683
- Here's how to integrate custom tools with a ReAct Agent:
684
-
685
760
  ```python
686
761
  from quantalogic import Agent
687
762
  from quantalogic.tools import create_tool, PythonTool
@@ -720,7 +795,26 @@ result = agent.solve_task(
720
795
  print(result)
721
796
  ```
722
797
 
723
- In this example, the agent can seamlessly use both the standard `PythonTool` and your custom stock price lookup tool to complete the task.
798
+ #### Using Custom Tools in Chat Mode
799
+ ```python
800
+ from quantalogic import Agent
801
+ from quantalogic.tools import create_tool
802
+
803
+ # Reuse the stock price tool
804
+ stock_tool = create_tool(get_stock_price)
805
+
806
+ # Create a chat agent
807
+ agent = Agent(
808
+ model_name="gpt-4o",
809
+ chat_system_prompt="You are a financial advisor",
810
+ tools=[stock_tool]
811
+ )
812
+
813
+ # Chat with tool usage
814
+ response = agent.chat("What’s the price of Microsoft stock?")
815
+ print(response)
816
+ # Might output: "Let me check that for you! MSFT is currently trading at $425.27."
817
+ ```
724
818
 
725
819
  Key features of `create_tool()`:
726
820
  - 🔧 Automatically converts functions to Tools
@@ -795,5 +889,5 @@ export LM_STUDIO_API_KEY="lm-your-key"
795
889
 
796
890
  ## Final Boost
797
891
 
798
- QuantaLogic is your ticket to AI awesomeness. Install it, play with it, and let’s build something unforgettable together!
892
+ QuantaLogic is your ticket to AI awesomeness. Install it, play with it—whether solving tasks, crafting workflows, or chatting up a storm—and let’s build something unforgettable together!
799
893
 
@@ -1,14 +1,14 @@
1
1
  quantalogic/__init__.py,sha256=qFbvfHOd_chAu536pH816E3uo6CdyAgXCpQOwMXXVnY,1076
2
- quantalogic/agent.py,sha256=Jpi4sK9Lj0miMo51zoocCh0OW2bd_IzHgY-bWW5Ka5w,42062
2
+ quantalogic/agent.py,sha256=frl4w5AFIqgGomNK4cy3qalmlGzOam_TRlw-xmxEsIs,62610
3
3
  quantalogic/agent_config.py,sha256=fPyMfm77BzimyfyFkTzb2ZdyZtGlr2fq5aTRETu77Vs,8202
4
- quantalogic/agent_factory.py,sha256=LO0qsFtHxU7lcEi8dn-nDHhkh6Dl8Is6sP_3f1ap_Vg,6251
4
+ quantalogic/agent_factory.py,sha256=NrgN7cSppmwh7QkP4Tak9f9TmRZAoAOUbRb3_bUgGq8,6870
5
5
  quantalogic/coding_agent.py,sha256=A-firiPWQjMC56B329Ne606_v2GsoF5-nxcuz3rVbYM,5496
6
- quantalogic/config.py,sha256=lsJxfWFWEMqS2Asus8z4A3W7X8JWoMi3-VHxfltvSfA,423
6
+ quantalogic/config.py,sha256=bmPI2rvQ9M8Zdl1H7K588JgJdnkxSE0L5_i5aBqsagA,564
7
7
  quantalogic/console_print_events.py,sha256=yDtfOr7s5r_gLTgwkl_XoKSkUqNRZhqqq4hwR_oJsUw,2050
8
8
  quantalogic/console_print_token.py,sha256=5IRVoPhwWZtSc4LpNoAsCQhCB_RnAW9chycGgyD3_5U,437
9
9
  quantalogic/create_custom_agent.py,sha256=e-InULqXFFUOfgZ9TqgsVkDTZTpVCGOPS-5wx5VQedY,21474
10
10
  quantalogic/docs_cli.py,sha256=Ie6NwKQuxLKwVQ-cjhFMCttXeiHDjGhNY4hSmMtc0Qg,1664
11
- quantalogic/event_emitter.py,sha256=e_1r6hvx5GmW84iuRkoqcjpjRiYHBk4hzujd5ZoUC6U,16777
11
+ quantalogic/event_emitter.py,sha256=wxzXrNhGiXAaa4EX7qTZEa81i3Mn4JKaU_T6E05QclE,16805
12
12
  quantalogic/flow/__init__.py,sha256=MD5FAdD6jnVnTPMIOmToKjFxHBQvLmOCT0VeaWhASBc,1295
13
13
  quantalogic/flow/flow.py,sha256=W2t30c0w939EqcMaJM473tL4ou1UtegiYcv7vdnkECA,42240
14
14
  quantalogic/flow/flow_extractor.py,sha256=7v5orkfnuAmD_Xu8TeyfB1QM5I_IIXooWokHlCyLY-8,33925
@@ -24,12 +24,13 @@ quantalogic/flow/templates/system_check_inventory.j2,sha256=FaLO9_MgoKmaVmvaK9pz
24
24
  quantalogic/generative_model.py,sha256=os30wdVRq3OsSf8M7TjoaGqJweL99UINQtSGCwoE91k,15913
25
25
  quantalogic/get_model_info.py,sha256=RgblwjjP7G97v_AzoGbXxXBIO082jVCRmvRwxnEpW_s,2991
26
26
  quantalogic/interactive_text_editor.py,sha256=CzefvRiLscFfOKBS4gmrI10Gn3SF_eS5zbiLVQ9Gugw,16334
27
- quantalogic/main.py,sha256=jVw-s-ZUyX4krq3rzFn84-i6Qw2tplTx_QmsKG03m8I,9591
27
+ quantalogic/main.py,sha256=5mnO-fcAOgbD_Bc1W2fe27M47E-nZAOL8I5dVgoC8Mo,11978
28
28
  quantalogic/memory.py,sha256=zbtRuM05jaS2lJll-92dt5JfYVLERnF_m_9xqp2x-k0,6304
29
29
  quantalogic/model_info.py,sha256=j7QqvjEFQDGpDOgQs8uTkVyI3a50Oa_nrsQjyxizTLc,272
30
30
  quantalogic/model_info_list.py,sha256=Xeeb7QS4xEpe9ke7Guh0CxEx-Hl59U4kC-qzVts-eAU,2437
31
31
  quantalogic/model_info_litellm.py,sha256=Uoo8ZATjqH6POnTE3Ee3kfHfFllPYp8LkvJwlJjFZH8,2089
32
32
  quantalogic/model_names.py,sha256=UZlz25zG9B2dpfwdw_e1Gw5qFsKQ7iME9FJh9Ts4u6s,938
33
+ quantalogic/prompts/chat_system_prompt.j2,sha256=BiWI9PF9Wd37kIrXWuA9UAKgxGZwA9ggVrZVDgc7m38,1365
33
34
  quantalogic/prompts/memory_compaction_prompt.j2,sha256=Xsy9XKN7zxL4wNnNjWWlUjYjmtktgtee5dDG4dSvRW8,569
34
35
  quantalogic/prompts/observation_response_format.j2,sha256=lvyveAJbXbc94aIvHgppKyaD9Tf7X5bCTGWjh51BDjI,1655
35
36
  quantalogic/prompts/repeated_tool_call_error.j2,sha256=IRENR3a3D28Dtys-kGDP-x_uSkJnxeQZ5-jYHWv_3G4,319
@@ -50,7 +51,7 @@ quantalogic/server/static/js/event_visualizer.js,sha256=eFkkWyNZw3zOZlF18kxbfsWq
50
51
  quantalogic/server/static/js/quantalogic.js,sha256=x7TrlZGR1Y0WLK2DWl1xY847BhEWMPnL0Ua7KtOldUc,22311
51
52
  quantalogic/server/templates/index.html,sha256=nDnXJoQEm1vXbhXtgaYk0G5VXj0wwzE6KrqEDhHFpj4,7773
52
53
  quantalogic/task_file_reader.py,sha256=oPcB4vTxJ__Y8o7VVABIPOkVw3tGDMdQYwdK27PERlE,1440
53
- quantalogic/task_runner.py,sha256=c2QVGKZfHA0wZIBUvehpjMvtRaKZuhuYQerjIiCC9iY,10053
54
+ quantalogic/task_runner.py,sha256=NB7TqNuwCstCAsTkjGcJSQRapNk8-iXe7d_2qf-fs1s,15815
54
55
  quantalogic/tool_manager.py,sha256=vNA7aBKgdU3wpw_goom6i9rg_64pNZapNxvg4cUhhCI,6983
55
56
  quantalogic/tools/__init__.py,sha256=lpfUu6S61dr4WYW4izUkpob7s5NLhkmmR5Zdi9iYrIc,2274
56
57
  quantalogic/tools/agent_tool.py,sha256=MXCXxWHRch7VK4UWhtRP1jeI8Np9Ne2CUGo8vm1oZiM,3064
@@ -167,8 +168,8 @@ quantalogic/version_check.py,sha256=JyQFTNMDWtpHCLnN-BiakzB2cyXf6kUFsTjvmSruZi4,
167
168
  quantalogic/welcome_message.py,sha256=o4tHdgabNuIV9kbIDPgS3_2yzJhayK30oKad2UouYDc,3020
168
169
  quantalogic/xml_parser.py,sha256=bLLwIwO-VEHWF3heNS7nuPC8wgdYw9F_fVZZNW1figY,11728
169
170
  quantalogic/xml_tool_parser.py,sha256=hGHA1q20JUoTNTbZYmi4FTdA5I25-AGEIP8DwZgQCNA,3897
170
- quantalogic-0.58.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
171
- quantalogic-0.58.0.dist-info/METADATA,sha256=A4AY49m3p5CSFQEBxmV57Spp1EsTsyno9zTQOL5Yqd8,28783
172
- quantalogic-0.58.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
173
- quantalogic-0.58.0.dist-info/entry_points.txt,sha256=h74O_Q3qBRCrDR99qvwB4BpBGzASPUIjCfxHq6Qnups,183
174
- quantalogic-0.58.0.dist-info/RECORD,,
171
+ quantalogic-0.59.0.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
172
+ quantalogic-0.59.0.dist-info/METADATA,sha256=i7y3sQDzXAgM1qdhZMEDGsCerJrW_yXnC5IsdAMfBJE,32831
173
+ quantalogic-0.59.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
174
+ quantalogic-0.59.0.dist-info/entry_points.txt,sha256=h74O_Q3qBRCrDR99qvwB4BpBGzASPUIjCfxHq6Qnups,183
175
+ quantalogic-0.59.0.dist-info/RECORD,,