From 413566311552582a6b04f1631773b7b8fe8b8138 Mon Sep 17 00:00:00 2001 From: Sebastien Rousseau Date: Sun, 18 Feb 2024 10:39:17 +0000 Subject: [PATCH] feat(akande): :art: v0.0.4 Major refactoring and optimisations --- akande/__init__.py | 2 +- akande/__main__.py | 8 +- akande/akande.py | 119 ++++++-- akande/server/server.py | 135 ++++++++++ akande/services.py | 12 +- poetry.lock | 7 +- public/index.html | 494 ++++++++++++++++++++++++++++++++++ public/sine-wave-generator.js | 347 ++++++++++++++++++++++++ pyproject.toml | 6 +- requirements.txt | 358 ++++++++++++------------ setup.cfg | 360 ++++++++++++------------- setup.py | 5 +- 12 files changed, 1455 insertions(+), 398 deletions(-) create mode 100644 akande/server/server.py create mode 100644 public/index.html create mode 100644 public/sine-wave-generator.js diff --git a/akande/__init__.py b/akande/__init__.py index e3b2a1a..90e4668 100644 --- a/akande/__init__.py +++ b/akande/__init__.py @@ -14,4 +14,4 @@ # limitations under the License. # """The Python Akande module.""" -__version__ = "0.0.3" +__version__ = "0.0.4" diff --git a/akande/__main__.py b/akande/__main__.py index eecd690..1625b62 100644 --- a/akande/__main__.py +++ b/akande/__main__.py @@ -43,7 +43,13 @@ async def main(): openai_service = OpenAIImpl() akande = Akande(openai_service=openai_service) - await akande.run_interaction() + try: + await akande.run_interaction() + except KeyboardInterrupt: + logging.info("Keyboard interrupt detected. Exiting...") + # Perform any necessary cleanup tasks here + # For example, stop the CherryPy server if it's running + await akande.stop_server() if __name__ == "__main__": diff --git a/akande/akande.py b/akande/akande.py index aaf175e..684b598 100644 --- a/akande/akande.py +++ b/akande/akande.py @@ -13,9 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. # +import cherrypy from .cache import SQLiteCache from .config import OPENAI_DEFAULT_MODEL from .services import OpenAIService + from .utils import generate_pdf, generate_csv from concurrent.futures import ThreadPoolExecutor from datetime import datetime @@ -25,7 +27,20 @@ import hashlib import logging import pyttsx4 +import threading import speech_recognition as sr +import os + + +# Define ANSI escape codes for colors +class Colors: + RESET = "\033[0m" + HEADER = "\033[95m" + RED_BACKGROUND = "\033[48;2;179;0;15m" + CYAN_BACKGROUND = "\033[48;2;65;175;220m" + GREEN_BACKGROUND = "\033[48;2;0;103;0m" + BLUE_BACKGROUND = "\033[48;2;0;78;203m" + ORANGE_BACKGROUND = "\033[48;2;150;61;0m" class Akande: @@ -45,6 +60,11 @@ def __init__(self, openai_service: OpenAIService): openai_service (OpenAIService): The OpenAI service for generating responses. """ + # Initialize the CherryPy server attribute + self.server = None + self.server_thread = None + self.server_running = False + # Create a directory path with the current date date_str = datetime.now().strftime("%Y-%m-%d") directory_path = Path(date_str) @@ -161,42 +181,87 @@ async def listen(self) -> str: async def run_interaction(self) -> None: """Main interaction loop of the voice assistant.""" while True: - welcome_msg = ( - "\nWelcome to Àkàndé, your AI voice assistant.\n" - ) - instructions = ( - "\nPress Enter to use voice or type " - "your question and press Enter:\n" - ) - choice = ( - input(welcome_msg + instructions).strip().lower() - ) # Normalize input to lower case immediately + os.system( + "clear" + ) # Clear the console for better visualization + banner_text = "Àkàndé Voice Assistant" + banner_width = len(banner_text) + 4 + print(f"{Colors.RESET}{' ' * banner_width}") + print(" " + banner_text + " ") + print(" " * banner_width + Colors.RESET) + + options = [ + ("1. Use voice", Colors.BLUE_BACKGROUND), + ("2. Ask a question", Colors.GREEN_BACKGROUND), + ("3. Start server", Colors.ORANGE_BACKGROUND), + ("4. Stop", Colors.RED_BACKGROUND), + ] + + for option_text, color in options: + print(f"{color}{' ' * banner_width}{Colors.RESET}") + print( + f"{color}{option_text:<{banner_width}}{Colors.RESET}" + ) + print(f"{color}{' ' * banner_width}{Colors.RESET}") + + choice = input("\nPlease select an option: ").strip() - if choice == "stop": + if choice == "4": print("\nGoodbye!") + await self.stop_server() break - - if choice: - prompt = choice - else: + elif choice == "3": + await self.run_server() + elif choice == "2": + question = input("Please enter your question: ").strip() + if question: + print("Processing question...") + response = await self.generate_response(question) + await self.speak(response) + await generate_pdf(question, response) + await generate_csv(question, response) + else: + print("No question provided.") + elif choice == "1": print("Listening...") prompt = (await self.listen()).lower() if prompt == "stop": print("\nGoodbye!") + await self.stop_server() break + elif prompt: + print("Processing voice command...") + response = await self.generate_response(prompt) + await self.speak(response) + await generate_pdf(prompt, response) + await generate_csv(prompt, response) + else: + print("No voice command detected.") + else: + print("Invalid choice. Please select a valid option.") - if prompt and prompt not in [ - "stop voice", - "stop text", - "thank you for your help", - ]: - response = await self.generate_response(prompt) - await self.speak(response) - await generate_pdf(prompt, response) - await generate_csv(prompt, response) - elif prompt == "thank you for your help": - await self.speak("You're welcome. Goodbye!") - break + async def run_server(self) -> None: + """Run the CherryPy server in a separate thread.""" + + # Define a function to start the server + def start_server(): + from .server.server import AkandeServer + + cherrypy.quickstart(AkandeServer()) + + # Set server_running flag to True + self.server_running = True + + # Start the server in a separate thread + server_thread = threading.Thread(target=start_server) + server_thread.start() + logging.info("CherryPy server started.") + + async def stop_server(self) -> None: + """Stop the CherryPy server.""" + self.server_running = False + cherrypy.engine.exit() + logging.info("CherryPy server stopped.") async def generate_response(self, prompt: str) -> str: """ diff --git a/akande/server/server.py b/akande/server/server.py new file mode 100644 index 0000000..bd509ac --- /dev/null +++ b/akande/server/server.py @@ -0,0 +1,135 @@ +import cherrypy +import json +import logging +import os +import io +import speech_recognition as sr +from pydub import AudioSegment +from pydub.exceptions import CouldntDecodeError +from akande.config import OPENAI_DEFAULT_MODEL +from akande.services import OpenAIImpl + + +class AkandeServer: + def __init__(self): + self.openai_service = OpenAIImpl() + self.logger = logging.getLogger(__name__) + + @cherrypy.expose + def index(self): + return open("./public/index.html") + + @cherrypy.expose + def static(self, path): + return open(f"./public/{path}") + + @cherrypy.expose + def process_question(self): + try: + request_data = json.loads(cherrypy.request.body.read()) + question = request_data.get("question") + self.logger.info(f"Received question: {question}") + + response_object = ( + self.openai_service.generate_response_sync( + question, OPENAI_DEFAULT_MODEL, None + ) + ) + message_content = response_object.choices[0].message.content + return json.dumps({"response": message_content}) + + except Exception as e: + self.logger.error(f"Failed to process question: {e}") + return json.dumps({"response": "An error occurred"}) + + @cherrypy.expose + @cherrypy.tools.allow(methods=["POST"]) + def process_audio_question(self): + try: + audio_data = cherrypy.request.body.read() + wav_file_path = self.convert_to_wav(audio_data) + processed_result = self.process_audio(wav_file_path) + + question_data = { + "response": "Audio data processed successfully", + "result": processed_result, + } + + question = question_data.get("result").get("text") + response_object = ( + self.openai_service.generate_response_sync( + question, OPENAI_DEFAULT_MODEL, None + ) + ) + + if os.path.exists(wav_file_path): + os.remove(wav_file_path) + self.logger.info(f"WAV file removed: {wav_file_path}") + + message_content = response_object.choices[0].message.content + return json.dumps({"response": message_content}) + + except Exception as e: + self.logger.error("Failed to process audio:", exc_info=True) + cherrypy.response.status = 500 + return json.dumps( + {"error": "Failed to process audio", "details": str(e)} + ).encode("utf-8") + + @staticmethod + def convert_to_wav(audio_data): + try: + for input_format in ["webm", "mp3", "mp4", "ogg", "flac"]: + try: + audio_segment = AudioSegment.from_file( + io.BytesIO(audio_data), format=input_format + ) + break + except CouldntDecodeError: + pass + + else: + raise ValueError("Unsupported audio format") + + audio_segment = audio_segment.set_channels( + 1 + ).set_frame_rate(16000) + directory_path = "./" + filename = "audio.wav" + file_path = os.path.join(directory_path, filename) + audio_segment.export(file_path, format="wav") + return file_path + + except Exception as e: + raise RuntimeError(f"Error converting audio: {e}") + + @staticmethod + def process_audio(file_path): + try: + recognizer = sr.Recognizer() + with sr.AudioFile(file_path) as source: + audio_data = recognizer.record(source) + + text = recognizer.recognize_google(audio_data) + return {"text": text, "success": True} + + except sr.UnknownValueError: + return { + "error": "Audio could not be understood", + "success": False, + } + except sr.RequestError as e: + return { + "error": f"Speech recognition service error {e}", + "success": False, + } + + +def main(): + logging.basicConfig(level=logging.INFO) + cherrypy.config.update({"server.socket_port": 8080}) + cherrypy.quickstart(AkandeServer()) + + +if __name__ == "__main__": + main() diff --git a/akande/services.py b/akande/services.py index 5b98778..2ac9c6c 100644 --- a/akande/services.py +++ b/akande/services.py @@ -13,7 +13,7 @@ # See the License for the specific language governing permissions and # limitations under the License. # -from abc import ABC, abstractmethod +from abc import ABC import asyncio import logging from typing import Any, Dict @@ -24,7 +24,6 @@ class OpenAIService(ABC): """Base class for OpenAI services.""" - @abstractmethod async def generate_response( self, prompt: str, model: str, params: Dict[str, Any] ) -> Dict[str, Any]: @@ -94,3 +93,12 @@ async def generate_response( except Exception as exc: logging.error("OpenAI API error: %s", exc) return {"error": str(exc)} + + def generate_response_sync( + self, user_prompt, model=OPENAI_DEFAULT_MODEL, params=None + ): + response = asyncio.run( + self.generate_response(user_prompt, model, params) + ) + logging.info(f"Generated response: {response}") + return response diff --git a/poetry.lock b/poetry.lock index 0d9d1cd..b9d8750 100644 --- a/poetry.lock +++ b/poetry.lock @@ -11,6 +11,9 @@ files = [ {file = "annotated_types-0.6.0.tar.gz", hash = "sha256:563339e807e53ffd9c267e99fc6d9ea23eb8443c08f112651963e24e22f84a5d"}, ] +[package.dependencies] +typing-extensions = {version = ">=4.0.0", markers = "python_version < \"3.9\""} + [[package]] name = "anyio" version = "4.2.0" @@ -3347,5 +3350,5 @@ zstd = ["zstandard (>=0.18.0)"] [metadata] lock-version = "2.0" -python-versions = "^3.9" -content-hash = "5846fd46ecf062b7caae2b38498f75be4f97924b239cb91be9749703d51992cb" +python-versions = "^3.8" +content-hash = "0060b639a9f03f61bea2df8da6da5f7ffa0bcd9a972fd870beab2fa0de5bf05b" diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..8ab2967 --- /dev/null +++ b/public/index.html @@ -0,0 +1,494 @@ + + + + + + + + + Àkàndé - AI Voice Assistant + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ Logo of Àkàndé Voice Assistant + +

Hi, I'm Àkàndé, Your Executive Virtual Assistant

+

Quickly understand complex information through concise, executive summaries tailored to your needs.

+

How can I help?

+
+ + +
+ +
+
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/sine-wave-generator.js b/public/sine-wave-generator.js new file mode 100644 index 0000000..7d08b06 --- /dev/null +++ b/public/sine-wave-generator.js @@ -0,0 +1,347 @@ +/** + * sine-wave-generator.js v0.0.2 + * + * A JavaScript library designed for generating animated sine waves on a canvas, + * offering configurable parameters, easing functions for smooth animations, and + * support for multiple waves with individual configurations. + * + * Website: + * + * https://sine-wave-generator.com + * + * Source: + * + * https://github.com/sebastienrousseau/sine-wave-generator + * + * @requires Ease + * @requires Wave + * @requires sine-wave-generator +*/ + +"use strict"; + +/** + * @typedef {Object} WaveConfig + * @property {number} [phase=Math.random() * Math.PI * 2] - The phase of the wave. + * @property {number} [speed=Math.random() * 0.5 + 0.5] - The speed of the wave. + * @property {number} [amplitude=DEFAULT_AMPLITUDE] - The amplitude of the wave. + * @property {number} [wavelength=DEFAULT_WAVELENGTH] - The wavelength of the wave. + * @property {string} [strokeStyle=DEFAULT_STROKE_STYLE] - The stroke style of the wave. + * @property {number} [segmentLength=DEFAULT_SEGMENT_LENGTH] - The segment length of the wave. + * @property {Function} [easing=Ease.sineInOut] - The easing function of the wave. + * @property {number} [rotate=0] - The rotation angle of the wave. + */ + +/** + * Ease functions for smooth animations. + * @namespace Ease + */ +const Ease = { + /** + * Provides smooth easing in and out animation. + * @param {number} time - The time parameter. + * @param {number} amplitude - The amplitude of the wave. + * @returns {number} - The eased value. + */ + sineInOut: (time, amplitude) => (amplitude * (Math.sin(time * Math.PI) + 1)) / 2, + /** + * Provides eased sine animation. + * @param {number} percent - The percentage of the animation. + * @param {number} amplitude - The amplitude of the wave. + * @returns {number} - The eased value. + */ + easedSine: (percent, amplitude) => { + let value; + const goldenSection = (1 - 1 / 1.618033988749895) / 2; + if (percent < goldenSection) { + value = 0; + } else if (percent > 1 - goldenSection) { + value = 0; + } else { + const adjustedPercent = (percent - goldenSection) / (1 - 2 * goldenSection); + value = Math.sin(adjustedPercent * Math.PI) * amplitude; + } + return value; + }, +}; + +// Constants +const FIBONACCI = 1.618033988749895; +const DEFAULT_AMPLITUDE = 10; +const DEFAULT_WAVELENGTH = 100; +const DEFAULT_STROKE_STYLE = "rgba(255,255,255,0.2)"; +const DEFAULT_SEGMENT_LENGTH = 10; +const LINE_WIDTH = 2; +const SPEED = FIBONACCI; + +/** + * Represents a wave for the sine wave generator. + * @class + */ +class Wave { + /** + * Creates an instance of Wave. + * @param {WaveConfig} config - The configuration object for the wave. + * @throws {Error} Throws an error if any configuration value is invalid. + */ + constructor({ + phase = Math.random() * Math.PI * 2, + speed = Math.random() * 0.5 + 0.5, + amplitude = DEFAULT_AMPLITUDE, + wavelength = DEFAULT_WAVELENGTH, + strokeStyle = DEFAULT_STROKE_STYLE, + segmentLength = DEFAULT_SEGMENT_LENGTH, + easing = Ease.sineInOut, + rotate = 0, + }) { + this.validateConfig({ amplitude, wavelength, segmentLength, speed, rotate }); + this.phase = phase; + this.speed = speed; + this.amplitude = amplitude; + this.wavelength = wavelength; + this.strokeStyle = strokeStyle; + this.segmentLength = segmentLength; + this.easing = easing; + this.rotate = rotate; + } + + /** + * Validates the configuration values for the wave. + * @param {Object} param0 - The configuration object. + * @param {number} param0.amplitude - The amplitude of the wave. + * @param {number} param0.wavelength - The wavelength of the wave. + * @param {number} param0.segmentLength - The segment length of the wave. + * @param {number} param0.speed - The speed of the wave. + * @param {number} param0.rotate - The rotation angle of the wave. + * @throws {Error} Throws an error if any configuration value is invalid. + */ + validateConfig({ amplitude, wavelength, segmentLength, speed, rotate }) { + if (amplitude < 0 || wavelength < 0 || segmentLength < 0 || speed < 0) { + throw new Error("Wave configuration values must be positive."); + } + if (rotate < 0 || rotate >= 360) { + throw new Error("Rotate value must be between 0 and 360 degrees."); + } + } + + /** + * Generates a random configuration object for the wave. + * @returns {WaveConfig} - The random configuration object. + */ + static generateRandomConfig() { + return { + phase: Math.random() * Math.PI * 2, + speed: Math.random() * 0.5 + 0.5, + amplitude: Math.random() * 20 + 5, + wavelength: Math.random() * 200 + 50, + strokeStyle: `rgba(${Math.floor(Math.random() * 255)},${Math.floor(Math.random() * 255)},${Math.floor(Math.random() * 255)},${Math.random().toFixed(1)})`, + segmentLength: Math.random() * 20 + 5, + easing: Ease.sineInOut, + rotate: Math.random() * 360, + }; + } + + /** + * Updates the wave's configuration. + * @param {WaveConfig} config - The new configuration object. + * @returns {this} - The updated Wave instance. + */ + update(config) { + Object.assign(this, config); + return this; + } +} + +/** + * Represents a sine wave generator. + * @class + */ +class SineWaveGenerator { + /** + * Creates an instance of SineWaveGenerator. + * @param {Object} options - The initialization options. + * @param {HTMLElement|string} options.el - The canvas element or selector for the canvas. + * @param {Wave[]} [options.waves=[]] - Array of Wave instances to be animated. + * @throws {Error} Throws an error if the canvas element is not provided. + */ + constructor({ el, waves = [] }) { + if (!el || !(el instanceof HTMLElement)) { + throw new Error('SineWaveGenerator requires a valid canvas element.'); + } + this.el = typeof el === "string" ? document.querySelector(el) : el; + this.ctx = this.el.getContext("2d"); + this.waves = waves.map((wave) => new Wave(wave)); + this.handleResize = this.resize.bind(this); + this.handleMouseMove = this.onMouseMove.bind(this); + this.handleTouchMove = this.onTouchMove.bind(this); + this.animationFrameId = null; + + this.waveTemplate = []; + for (let x = 0; x < this.el.width; x += DEFAULT_SEGMENT_LENGTH) { + this.waveTemplate.push({ + x: x, + y: 0, + }); + } + + this.bindEvents(); + } + + /** + * Binds necessary events. + * @returns {this} - The SineWaveGenerator instance for chaining. + */ + bindEvents() { + window.addEventListener("resize", this.handleResize); + this.el.addEventListener("mousemove", this.handleMouseMove); + this.el.addEventListener("touchmove", this.handleTouchMove); + return this; + } + + /** + * Unbinds events. + * @returns {this} - The SineWaveGenerator instance for chaining. + */ + unbindEvents() { + window.removeEventListener("resize", this.handleResize); + this.el.removeEventListener("mousemove", this.handleMouseMove); + this.el.removeEventListener("touchmove", this.handleTouchMove); + return this; + } + + /** + * Handles mouse movement. + * @param {MouseEvent} event - The mouse event. + */ + onMouseMove(event) { + const mouseY = event.clientY / this.el.height; + this.waves.forEach((wave) => { + // wave.phase = mouseY * Math.PI * 2; + }); + } + + /** + * Handles touch movement. + * @param {TouchEvent} event - The touch event. + */ + onTouchMove(event) { + const touchY = event.touches[0].clientY / this.el.height; + this.waves.forEach((wave) => { + // wave.phase = touchY * Math.PI * 2; + }); + } + + /** + * Starts the animation of waves. + * @returns {this} - The SineWaveGenerator instance for chaining. + */ + start() { + const draw = () => { + this.ctx.clearRect(0, 0, this.el.width, this.el.height); + this.waves.forEach((wave) => this.drawWave(wave)); + this.animationFrameId = requestAnimationFrame(draw); + }; + draw(); + this.resize(); + return this; + } + + /** + * Stops the animation of waves. + * @returns {this} - The SineWaveGenerator instance for chaining. + */ + stop() { + if (this.animationFrameId) { + window.cancelAnimationFrame(this.animationFrameId); + this.animationFrameId = null; + } + this.unbindEvents(); + return this; + } + + /** + * Adjusts the canvas size on window resize to maintain the full-screen effect. + * @returns {this} - The SineWaveGenerator instance for chaining. + */ + resize() { + this.el.width = window.innerWidth / 2; + this.el.height = window.innerHeight / 2; + return this; + } + + /** + * Draws a wave on the canvas. + * @param {Wave} wave - The wave to be drawn. + * @returns {this} - The SineWaveGenerator instance for chaining. + */ + drawWave(wave) { + // Method implementation + this.ctx.save(); + if (wave.rotate) { + this.ctx.translate(this.el.width / 2, this.el.height / 2); + this.ctx.rotate((wave.rotate * Math.PI) / 45); + this.ctx.translate(-this.el.width / 2, -this.el.height / 2); + } + + const easing = wave.easing || Ease.sineInOut; + + const gradient = this.ctx.createLinearGradient(0, 0, this.el.width, 0); + gradient.addColorStop(0, "rgba(25, 255, 255, 0)"); + gradient.addColorStop(0.5, "rgba(255, 25, 255, 0.75)"); + gradient.addColorStop(1, "rgba(255, 255, 25, 0)"); + + const startY = this.el.height / 2; + this.ctx.beginPath(); + this.ctx.moveTo(0, startY); + + for (let xPos = 0; xPos < this.el.width; xPos++) { + const percent = xPos / this.el.width; + const amp = easing(percent, wave.amplitude); + + const time = ((xPos + wave.phase) * Math.PI * 2) / this.el.width; + const y = Math.sin(time) * amp + startY; + + this.ctx.lineTo(xPos, y); + } + + this.ctx.strokeStyle = gradient; + this.ctx.stroke(); + + wave.phase += wave.speed * Math.PI * 2; + + this.ctx.restore(); + + return this; + } + + /** + * Adds a new wave to the generator. + * @param {WaveConfig} config - The configuration object for the new wave. + * @returns {this} - The SineWaveGenerator instance for chaining. + * @throws {Error} Throws an error if the configuration object is not provided. + */ + addWave(config) { + if (!config || typeof config !== 'object') { + throw new Error('Invalid wave configuration provided.'); + } + const newWave = new Wave(config); + this.waves.push(newWave); + return this; + } + + /** + * Removes a wave from the generator. + * @param {number} index - The index of the wave to be removed. + * @returns {this} - The SineWaveGenerator instance for chaining. + * @throws {Error} Throws an error if the index is out of bounds. + */ + removeWave(index) { + if (index < 0 || index >= this.waves.length) { + throw new Error('Wave index out of bounds.'); + } + this.waves.splice(index, 1); + return this; + } +} + +window.SineWaveGenerator = SineWaveGenerator; diff --git a/pyproject.toml b/pyproject.toml index adb32c3..3734a91 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "akande" -version = "0.0.3" +version = "0.0.4" description = "An innovative, open-source voice assistant powered by OpenAI's GPT-3, designed to provide interactive, conversational experiences through both voice and text inputs." authors = ["Sebastien Rousseau "] license = "Apache Software License" @@ -12,7 +12,7 @@ homepage = "https://akande.co" openai = "1.12.0" py3-tts = "3.5" pyaudio = "0.2.14" -python = "^3.9" +python = "^3.8" python-dotenv = "1.0.1" pyttsx4 = "3.0.15" reportlab = "4.1.0" @@ -24,7 +24,7 @@ build-backend = "poetry.core.masonry.api" [tool.black] line-length = 72 -target-version = ['py39'] +target-version = ['py38', 'py39', 'py310'] [tool.isort] profile = "black" diff --git a/requirements.txt b/requirements.txt index a18d83f..00e540c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,179 +1,179 @@ -annotated-types==0.6.0 ; python_version >= "3.9" and python_version < "4.0" -anyio==4.2.0 ; python_version >= "3.9" and python_version < "4.0" -certifi==2024.2.2 ; python_version >= "3.9" and python_version < "4.0" -chardet==5.2.0 ; python_version >= "3.9" and python_version < "4" -charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "4.0" -colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" -comtypes==1.3.0 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" -distro==1.9.0 ; python_version >= "3.9" and python_version < "4.0" -exceptiongroup==1.2.0 ; python_version >= "3.9" and python_version < "3.11" -h11==0.14.0 ; python_version >= "3.9" and python_version < "4.0" -httpcore==1.0.3 ; python_version >= "3.9" and python_version < "4.0" -httpx==0.26.0 ; python_version >= "3.9" and python_version < "4.0" -idna==3.6 ; python_version >= "3.9" and python_version < "4.0" -openai==1.12.0 ; python_version >= "3.9" and python_version < "4.0" -pillow==10.2.0 ; python_version >= "3.9" and python_version < "4" -py3-tts==3.5 ; python_version >= "3.9" and python_version < "4.0" -pyaudio==0.2.14 ; python_version >= "3.9" and python_version < "4.0" -pydantic-core==2.16.2 ; python_version >= "3.9" and python_version < "4.0" -pydantic==2.6.1 ; python_version >= "3.9" and python_version < "4.0" -pyobjc-core==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-accessibility==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-accounts==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" -pyobjc-framework-addressbook==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-adservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-adsupport==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" -pyobjc-framework-applescriptkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-applescriptobjc==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" -pyobjc-framework-applicationservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-apptrackingtransparency==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-audiovideobridging==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" -pyobjc-framework-authenticationservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-automaticassessmentconfiguration==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-automator==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-avfoundation==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" -pyobjc-framework-avkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" -pyobjc-framework-avrouting==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" -pyobjc-framework-backgroundassets==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" -pyobjc-framework-businesschat==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" -pyobjc-framework-calendarstore==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" -pyobjc-framework-callkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-cfnetwork==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-classkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-cloudkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" -pyobjc-framework-cocoa==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-collaboration==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" -pyobjc-framework-colorsync==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" -pyobjc-framework-contacts==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" -pyobjc-framework-contactsui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" -pyobjc-framework-coreaudio==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-coreaudiokit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-corebluetooth==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" -pyobjc-framework-coredata==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-corehaptics==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-corelocation==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" -pyobjc-framework-coremedia==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" -pyobjc-framework-coremediaio==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" -pyobjc-framework-coremidi==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-coreml==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" -pyobjc-framework-coremotion==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-coreservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-corespotlight==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" -pyobjc-framework-coretext==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-corewlan==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" -pyobjc-framework-cryptotokenkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" -pyobjc-framework-datadetection==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" -pyobjc-framework-devicecheck==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-dictionaryservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" -pyobjc-framework-discrecording==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-discrecordingui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-diskarbitration==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-dvdplayback==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-eventkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" -pyobjc-framework-exceptionhandling==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-executionpolicy==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-extensionkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" -pyobjc-framework-externalaccessory==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" -pyobjc-framework-fileprovider==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-fileproviderui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-findersync==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" -pyobjc-framework-fsevents==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-gamecenter==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" -pyobjc-framework-gamecontroller==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" -pyobjc-framework-gamekit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" -pyobjc-framework-gameplaykit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" -pyobjc-framework-healthkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" -pyobjc-framework-imagecapturecore==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" -pyobjc-framework-imserviceplugin==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" -pyobjc-framework-inputmethodkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" -pyobjc-framework-installerplugins==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-instantmessage==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" -pyobjc-framework-intents==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "16.0" -pyobjc-framework-intentsui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" -pyobjc-framework-iosurface==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" -pyobjc-framework-ituneslibrary==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" -pyobjc-framework-kernelmanagement==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-latentsemanticmapping==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-launchservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-libdispatch==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" -pyobjc-framework-linkpresentation==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-localauthentication==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" -pyobjc-framework-localauthenticationembeddedui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" -pyobjc-framework-mailkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" -pyobjc-framework-mapkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" -pyobjc-framework-mediaaccessibility==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" -pyobjc-framework-medialibrary==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" -pyobjc-framework-mediaplayer==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "16.0" -pyobjc-framework-mediatoolbox==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" -pyobjc-framework-metal==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" -pyobjc-framework-metalfx==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" -pyobjc-framework-metalkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" -pyobjc-framework-metalperformanceshaders==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" -pyobjc-framework-metalperformanceshadersgraph==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-metrickit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" -pyobjc-framework-mlcompute==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-modelio==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" -pyobjc-framework-multipeerconnectivity==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" -pyobjc-framework-naturallanguage==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" -pyobjc-framework-netfs==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" -pyobjc-framework-network==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" -pyobjc-framework-networkextension==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" -pyobjc-framework-notificationcenter==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" -pyobjc-framework-opendirectory==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" -pyobjc-framework-osakit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-oslog==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-passkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-pencilkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-photos==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" -pyobjc-framework-photosui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" -pyobjc-framework-preferencepanes==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-pubsub==9.0.1 ; platform_release >= "9.0" and platform_release < "18.0" and python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-pushkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-quartz==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-quicklookthumbnailing==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-replaykit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-safariservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" -pyobjc-framework-safetykit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" -pyobjc-framework-scenekit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" -pyobjc-framework-screencapturekit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.4" -pyobjc-framework-screensaver==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-screentime==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-scriptingbridge==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" -pyobjc-framework-searchkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-security==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-securityfoundation==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-securityinterface==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-servicemanagement==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" -pyobjc-framework-sharedwithyou==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" -pyobjc-framework-sharedwithyoucore==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" -pyobjc-framework-shazamkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" -pyobjc-framework-social==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" -pyobjc-framework-soundanalysis==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-speech==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-spritekit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" -pyobjc-framework-storekit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" -pyobjc-framework-syncservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-systemconfiguration==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc-framework-systemextensions==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" -pyobjc-framework-threadnetwork==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" -pyobjc-framework-uniformtypeidentifiers==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-usernotifications==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" -pyobjc-framework-usernotificationsui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-videosubscriberaccount==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" -pyobjc-framework-videotoolbox==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" -pyobjc-framework-virtualization==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" -pyobjc-framework-vision==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" -pyobjc-framework-webkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pyobjc==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" -pypiwin32==223 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" -python-dotenv==1.0.1 ; python_version >= "3.9" and python_version < "4.0" -pyttsx4==3.0.15 ; python_version >= "3.9" and python_version < "4.0" -pywin32==306 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" -reportlab==4.1.0 ; python_version >= "3.9" and python_version < "4" -requests==2.31.0 ; python_version >= "3.9" and python_version < "4.0" -six==1.16.0 ; python_version >= "3.9" and python_version < "4.0" -sniffio==1.3.0 ; python_version >= "3.9" and python_version < "4.0" -speechrecognition==3.10.1 ; python_version >= "3.9" and python_version < "4.0" -tqdm==4.66.2 ; python_version >= "3.9" and python_version < "4.0" -typing-extensions==4.9.0 ; python_version >= "3.9" and python_version < "4.0" -urllib3==2.2.0 ; python_version >= "3.9" and python_version < "4.0" +annotated-types==0.6.0 ; python_version >= "3.8" and python_version < "4.0" +anyio==4.2.0 ; python_version >= "3.8" and python_version < "4.0" +certifi==2024.2.2 ; python_version >= "3.8" and python_version < "4.0" +chardet==5.2.0 ; python_version >= "3.8" and python_version < "4" +charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "4.0" +colorama==0.4.6 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows" +comtypes==1.3.0 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows" +distro==1.9.0 ; python_version >= "3.8" and python_version < "4.0" +exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11" +h11==0.14.0 ; python_version >= "3.8" and python_version < "4.0" +httpcore==1.0.3 ; python_version >= "3.8" and python_version < "4.0" +httpx==0.26.0 ; python_version >= "3.8" and python_version < "4.0" +idna==3.6 ; python_version >= "3.8" and python_version < "4.0" +openai==1.12.0 ; python_version >= "3.8" and python_version < "4.0" +pillow==10.2.0 ; python_version >= "3.8" and python_version < "4" +py3-tts==3.5 ; python_version >= "3.8" and python_version < "4.0" +pyaudio==0.2.14 ; python_version >= "3.8" and python_version < "4.0" +pydantic-core==2.16.2 ; python_version >= "3.8" and python_version < "4.0" +pydantic==2.6.1 ; python_version >= "3.8" and python_version < "4.0" +pyobjc-core==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-accessibility==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-accounts==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" +pyobjc-framework-addressbook==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-adservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-adsupport==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" +pyobjc-framework-applescriptkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-applescriptobjc==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" +pyobjc-framework-applicationservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-apptrackingtransparency==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-audiovideobridging==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" +pyobjc-framework-authenticationservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-automaticassessmentconfiguration==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-automator==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-avfoundation==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" +pyobjc-framework-avkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" +pyobjc-framework-avrouting==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" +pyobjc-framework-backgroundassets==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" +pyobjc-framework-businesschat==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" +pyobjc-framework-calendarstore==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" +pyobjc-framework-callkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-cfnetwork==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-classkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-cloudkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" +pyobjc-framework-cocoa==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-collaboration==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" +pyobjc-framework-colorsync==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" +pyobjc-framework-contacts==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" +pyobjc-framework-contactsui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" +pyobjc-framework-coreaudio==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-coreaudiokit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-corebluetooth==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" +pyobjc-framework-coredata==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-corehaptics==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-corelocation==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" +pyobjc-framework-coremedia==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" +pyobjc-framework-coremediaio==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" +pyobjc-framework-coremidi==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-coreml==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" +pyobjc-framework-coremotion==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-coreservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-corespotlight==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" +pyobjc-framework-coretext==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-corewlan==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" +pyobjc-framework-cryptotokenkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" +pyobjc-framework-datadetection==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" +pyobjc-framework-devicecheck==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-dictionaryservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" +pyobjc-framework-discrecording==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-discrecordingui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-diskarbitration==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-dvdplayback==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-eventkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" +pyobjc-framework-exceptionhandling==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-executionpolicy==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-extensionkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" +pyobjc-framework-externalaccessory==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" +pyobjc-framework-fileprovider==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-fileproviderui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-findersync==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" +pyobjc-framework-fsevents==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-gamecenter==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" +pyobjc-framework-gamecontroller==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" +pyobjc-framework-gamekit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" +pyobjc-framework-gameplaykit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" +pyobjc-framework-healthkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" +pyobjc-framework-imagecapturecore==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" +pyobjc-framework-imserviceplugin==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" +pyobjc-framework-inputmethodkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" +pyobjc-framework-installerplugins==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-instantmessage==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" +pyobjc-framework-intents==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "16.0" +pyobjc-framework-intentsui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" +pyobjc-framework-iosurface==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" +pyobjc-framework-ituneslibrary==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" +pyobjc-framework-kernelmanagement==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-latentsemanticmapping==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-launchservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-libdispatch==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" +pyobjc-framework-linkpresentation==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-localauthentication==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" +pyobjc-framework-localauthenticationembeddedui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" +pyobjc-framework-mailkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" +pyobjc-framework-mapkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" +pyobjc-framework-mediaaccessibility==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" +pyobjc-framework-medialibrary==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" +pyobjc-framework-mediaplayer==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "16.0" +pyobjc-framework-mediatoolbox==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" +pyobjc-framework-metal==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" +pyobjc-framework-metalfx==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" +pyobjc-framework-metalkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" +pyobjc-framework-metalperformanceshaders==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" +pyobjc-framework-metalperformanceshadersgraph==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-metrickit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" +pyobjc-framework-mlcompute==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-modelio==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" +pyobjc-framework-multipeerconnectivity==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" +pyobjc-framework-naturallanguage==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" +pyobjc-framework-netfs==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" +pyobjc-framework-network==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" +pyobjc-framework-networkextension==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" +pyobjc-framework-notificationcenter==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" +pyobjc-framework-opendirectory==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" +pyobjc-framework-osakit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-oslog==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-passkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-pencilkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-photos==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" +pyobjc-framework-photosui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" +pyobjc-framework-preferencepanes==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-pubsub==9.0.1 ; platform_release >= "9.0" and platform_release < "18.0" and python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-pushkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-quartz==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-quicklookthumbnailing==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-replaykit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-safariservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" +pyobjc-framework-safetykit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" +pyobjc-framework-scenekit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" +pyobjc-framework-screencapturekit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.4" +pyobjc-framework-screensaver==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-screentime==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-scriptingbridge==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" +pyobjc-framework-searchkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-security==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-securityfoundation==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-securityinterface==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-servicemanagement==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" +pyobjc-framework-sharedwithyou==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" +pyobjc-framework-sharedwithyoucore==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" +pyobjc-framework-shazamkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" +pyobjc-framework-social==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" +pyobjc-framework-soundanalysis==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-speech==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-spritekit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" +pyobjc-framework-storekit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" +pyobjc-framework-syncservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-systemconfiguration==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc-framework-systemextensions==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" +pyobjc-framework-threadnetwork==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" +pyobjc-framework-uniformtypeidentifiers==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-usernotifications==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" +pyobjc-framework-usernotificationsui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-videosubscriberaccount==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" +pyobjc-framework-videotoolbox==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" +pyobjc-framework-virtualization==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" +pyobjc-framework-vision==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" +pyobjc-framework-webkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pyobjc==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" +pypiwin32==223 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows" +python-dotenv==1.0.1 ; python_version >= "3.8" and python_version < "4.0" +pyttsx4==3.0.15 ; python_version >= "3.8" and python_version < "4.0" +pywin32==306 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows" +reportlab==4.1.0 ; python_version >= "3.8" and python_version < "4" +requests==2.31.0 ; python_version >= "3.8" and python_version < "4.0" +six==1.16.0 ; python_version >= "3.8" and python_version < "4.0" +sniffio==1.3.0 ; python_version >= "3.8" and python_version < "4.0" +speechrecognition==3.10.1 ; python_version >= "3.8" and python_version < "4.0" +tqdm==4.66.2 ; python_version >= "3.8" and python_version < "4.0" +typing-extensions==4.9.0 ; python_version >= "3.8" and python_version < "4.0" +urllib3==2.2.0 ; python_version >= "3.8" and python_version < "4.0" diff --git a/setup.cfg b/setup.cfg index ef7de63..4f71e39 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = akande -version = 0.0.3 +version = 0.0.4 author = Sebastian Rousseau author_email = sebastian.rousseau@gmail.com description = Akande: An OpenAI GPT-3 powered voice assistant. @@ -15,185 +15,185 @@ classifiers = [options] packages = find: python_requires = >=3.7 -install_requires = annotated-types==0.6.0 ; python_version >= "3.9" and python_version < "4.0" - anyio==4.2.0 ; python_version >= "3.9" and python_version < "4.0" - certifi==2024.2.2 ; python_version >= "3.9" and python_version < "4.0" - chardet==5.2.0 ; python_version >= "3.9" and python_version < "4" - charset-normalizer==3.3.2 ; python_version >= "3.9" and python_version < "4.0" - colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" - comtypes==1.3.0 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" - distro==1.9.0 ; python_version >= "3.9" and python_version < "4.0" - exceptiongroup==1.2.0 ; python_version >= "3.9" and python_version < "3.11" - h11==0.14.0 ; python_version >= "3.9" and python_version < "4.0" - httpcore==1.0.3 ; python_version >= "3.9" and python_version < "4.0" - httpx==0.26.0 ; python_version >= "3.9" and python_version < "4.0" - idna==3.6 ; python_version >= "3.9" and python_version < "4.0" - openai==1.12.0 ; python_version >= "3.9" and python_version < "4.0" - pillow==10.2.0 ; python_version >= "3.9" and python_version < "4" - py3-tts==3.5 ; python_version >= "3.9" and python_version < "4.0" - pyaudio==0.2.14 ; python_version >= "3.9" and python_version < "4.0" - pydantic-core==2.16.2 ; python_version >= "3.9" and python_version < "4.0" - pydantic==2.6.1 ; python_version >= "3.9" and python_version < "4.0" - pyobjc-core==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-accessibility==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-accounts==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" - pyobjc-framework-addressbook==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-adservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-adsupport==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" - pyobjc-framework-applescriptkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-applescriptobjc==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" - pyobjc-framework-applicationservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-apptrackingtransparency==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-audiovideobridging==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" - pyobjc-framework-authenticationservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-automaticassessmentconfiguration==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-automator==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-avfoundation==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" - pyobjc-framework-avkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" - pyobjc-framework-avrouting==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" - pyobjc-framework-backgroundassets==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" - pyobjc-framework-businesschat==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" - pyobjc-framework-calendarstore==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" - pyobjc-framework-callkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-cfnetwork==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-classkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-cloudkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" - pyobjc-framework-cocoa==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-collaboration==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" - pyobjc-framework-colorsync==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" - pyobjc-framework-contacts==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" - pyobjc-framework-contactsui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" - pyobjc-framework-coreaudio==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-coreaudiokit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-corebluetooth==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" - pyobjc-framework-coredata==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-corehaptics==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-corelocation==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" - pyobjc-framework-coremedia==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" - pyobjc-framework-coremediaio==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" - pyobjc-framework-coremidi==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-coreml==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" - pyobjc-framework-coremotion==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-coreservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-corespotlight==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" - pyobjc-framework-coretext==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-corewlan==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" - pyobjc-framework-cryptotokenkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" - pyobjc-framework-datadetection==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" - pyobjc-framework-devicecheck==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-dictionaryservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" - pyobjc-framework-discrecording==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-discrecordingui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-diskarbitration==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-dvdplayback==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-eventkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" - pyobjc-framework-exceptionhandling==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-executionpolicy==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-extensionkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" - pyobjc-framework-externalaccessory==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" - pyobjc-framework-fileprovider==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-fileproviderui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-findersync==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" - pyobjc-framework-fsevents==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-gamecenter==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" - pyobjc-framework-gamecontroller==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" - pyobjc-framework-gamekit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" - pyobjc-framework-gameplaykit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" - pyobjc-framework-healthkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" - pyobjc-framework-imagecapturecore==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" - pyobjc-framework-imserviceplugin==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" - pyobjc-framework-inputmethodkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" - pyobjc-framework-installerplugins==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-instantmessage==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" - pyobjc-framework-intents==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "16.0" - pyobjc-framework-intentsui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" - pyobjc-framework-iosurface==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" - pyobjc-framework-ituneslibrary==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" - pyobjc-framework-kernelmanagement==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-latentsemanticmapping==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-launchservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-libdispatch==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" - pyobjc-framework-linkpresentation==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-localauthentication==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" - pyobjc-framework-localauthenticationembeddedui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" - pyobjc-framework-mailkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" - pyobjc-framework-mapkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" - pyobjc-framework-mediaaccessibility==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" - pyobjc-framework-medialibrary==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" - pyobjc-framework-mediaplayer==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "16.0" - pyobjc-framework-mediatoolbox==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" - pyobjc-framework-metal==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" - pyobjc-framework-metalfx==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" - pyobjc-framework-metalkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" - pyobjc-framework-metalperformanceshaders==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" - pyobjc-framework-metalperformanceshadersgraph==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-metrickit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" - pyobjc-framework-mlcompute==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-modelio==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" - pyobjc-framework-multipeerconnectivity==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" - pyobjc-framework-naturallanguage==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" - pyobjc-framework-netfs==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" - pyobjc-framework-network==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" - pyobjc-framework-networkextension==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" - pyobjc-framework-notificationcenter==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" - pyobjc-framework-opendirectory==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" - pyobjc-framework-osakit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-oslog==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-passkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-pencilkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-photos==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" - pyobjc-framework-photosui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" - pyobjc-framework-preferencepanes==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-pubsub==9.0.1 ; platform_release >= "9.0" and platform_release < "18.0" and python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-pushkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-quartz==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-quicklookthumbnailing==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-replaykit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-safariservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" - pyobjc-framework-safetykit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" - pyobjc-framework-scenekit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" - pyobjc-framework-screencapturekit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.4" - pyobjc-framework-screensaver==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-screentime==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-scriptingbridge==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" - pyobjc-framework-searchkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-security==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-securityfoundation==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-securityinterface==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-servicemanagement==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" - pyobjc-framework-sharedwithyou==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" - pyobjc-framework-sharedwithyoucore==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" - pyobjc-framework-shazamkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" - pyobjc-framework-social==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" - pyobjc-framework-soundanalysis==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-speech==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-spritekit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" - pyobjc-framework-storekit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" - pyobjc-framework-syncservices==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-systemconfiguration==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc-framework-systemextensions==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" - pyobjc-framework-threadnetwork==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" - pyobjc-framework-uniformtypeidentifiers==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-usernotifications==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" - pyobjc-framework-usernotificationsui==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-videosubscriberaccount==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" - pyobjc-framework-videotoolbox==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" - pyobjc-framework-virtualization==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" - pyobjc-framework-vision==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" - pyobjc-framework-webkit==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pyobjc==9.0.1 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Darwin" - pypiwin32==223 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" - python-dotenv==1.0.1 ; python_version >= "3.9" and python_version < "4.0" - pyttsx4==3.0.15 ; python_version >= "3.9" and python_version < "4.0" - pywin32==306 ; python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" - reportlab==4.1.0 ; python_version >= "3.9" and python_version < "4" - requests==2.31.0 ; python_version >= "3.9" and python_version < "4.0" - six==1.16.0 ; python_version >= "3.9" and python_version < "4.0" - sniffio==1.3.0 ; python_version >= "3.9" and python_version < "4.0" - speechrecognition==3.10.1 ; python_version >= "3.9" and python_version < "4.0" - tqdm==4.66.2 ; python_version >= "3.9" and python_version < "4.0" - typing-extensions==4.9.0 ; python_version >= "3.9" and python_version < "4.0" - urllib3==2.2.0 ; python_version >= "3.9" and python_version < "4.0" +install_requires = annotated-types==0.6.0 ; python_version >= "3.8" and python_version < "4.0" + anyio==4.2.0 ; python_version >= "3.8" and python_version < "4.0" + certifi==2024.2.2 ; python_version >= "3.8" and python_version < "4.0" + chardet==5.2.0 ; python_version >= "3.8" and python_version < "4" + charset-normalizer==3.3.2 ; python_version >= "3.8" and python_version < "4.0" + colorama==0.4.6 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows" + comtypes==1.3.0 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows" + distro==1.9.0 ; python_version >= "3.8" and python_version < "4.0" + exceptiongroup==1.2.0 ; python_version >= "3.8" and python_version < "3.11" + h11==0.14.0 ; python_version >= "3.8" and python_version < "4.0" + httpcore==1.0.3 ; python_version >= "3.8" and python_version < "4.0" + httpx==0.26.0 ; python_version >= "3.8" and python_version < "4.0" + idna==3.6 ; python_version >= "3.8" and python_version < "4.0" + openai==1.12.0 ; python_version >= "3.8" and python_version < "4.0" + pillow==10.2.0 ; python_version >= "3.8" and python_version < "4" + py3-tts==3.5 ; python_version >= "3.8" and python_version < "4.0" + pyaudio==0.2.14 ; python_version >= "3.8" and python_version < "4.0" + pydantic-core==2.16.2 ; python_version >= "3.8" and python_version < "4.0" + pydantic==2.6.1 ; python_version >= "3.8" and python_version < "4.0" + pyobjc-core==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-accessibility==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-accounts==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" + pyobjc-framework-addressbook==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-adservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-adsupport==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" + pyobjc-framework-applescriptkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-applescriptobjc==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" + pyobjc-framework-applicationservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-apptrackingtransparency==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-audiovideobridging==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" + pyobjc-framework-authenticationservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-automaticassessmentconfiguration==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-automator==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-avfoundation==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" + pyobjc-framework-avkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" + pyobjc-framework-avrouting==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" + pyobjc-framework-backgroundassets==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" + pyobjc-framework-businesschat==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" + pyobjc-framework-calendarstore==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" + pyobjc-framework-callkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-cfnetwork==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-classkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-cloudkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" + pyobjc-framework-cocoa==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-collaboration==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" + pyobjc-framework-colorsync==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" + pyobjc-framework-contacts==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" + pyobjc-framework-contactsui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" + pyobjc-framework-coreaudio==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-coreaudiokit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-corebluetooth==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" + pyobjc-framework-coredata==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-corehaptics==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-corelocation==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" + pyobjc-framework-coremedia==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" + pyobjc-framework-coremediaio==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" + pyobjc-framework-coremidi==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-coreml==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" + pyobjc-framework-coremotion==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-coreservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-corespotlight==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" + pyobjc-framework-coretext==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-corewlan==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" + pyobjc-framework-cryptotokenkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" + pyobjc-framework-datadetection==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" + pyobjc-framework-devicecheck==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-dictionaryservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" + pyobjc-framework-discrecording==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-discrecordingui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-diskarbitration==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-dvdplayback==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-eventkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" + pyobjc-framework-exceptionhandling==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-executionpolicy==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-extensionkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" + pyobjc-framework-externalaccessory==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" + pyobjc-framework-fileprovider==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-fileproviderui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-findersync==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" + pyobjc-framework-fsevents==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-gamecenter==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" + pyobjc-framework-gamecontroller==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" + pyobjc-framework-gamekit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" + pyobjc-framework-gameplaykit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" + pyobjc-framework-healthkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" + pyobjc-framework-imagecapturecore==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" + pyobjc-framework-imserviceplugin==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" + pyobjc-framework-inputmethodkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" + pyobjc-framework-installerplugins==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-instantmessage==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" + pyobjc-framework-intents==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "16.0" + pyobjc-framework-intentsui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" + pyobjc-framework-iosurface==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" + pyobjc-framework-ituneslibrary==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" + pyobjc-framework-kernelmanagement==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-latentsemanticmapping==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-launchservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-libdispatch==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" + pyobjc-framework-linkpresentation==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-localauthentication==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" + pyobjc-framework-localauthenticationembeddedui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" + pyobjc-framework-mailkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" + pyobjc-framework-mapkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" + pyobjc-framework-mediaaccessibility==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" + pyobjc-framework-medialibrary==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" + pyobjc-framework-mediaplayer==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "16.0" + pyobjc-framework-mediatoolbox==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" + pyobjc-framework-metal==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" + pyobjc-framework-metalfx==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" + pyobjc-framework-metalkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" + pyobjc-framework-metalperformanceshaders==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" + pyobjc-framework-metalperformanceshadersgraph==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-metrickit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" + pyobjc-framework-mlcompute==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-modelio==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" + pyobjc-framework-multipeerconnectivity==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" + pyobjc-framework-naturallanguage==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" + pyobjc-framework-netfs==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" + pyobjc-framework-network==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" + pyobjc-framework-networkextension==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" + pyobjc-framework-notificationcenter==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "14.0" + pyobjc-framework-opendirectory==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" + pyobjc-framework-osakit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-oslog==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-passkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-pencilkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-photos==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" + pyobjc-framework-photosui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" + pyobjc-framework-preferencepanes==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-pubsub==9.0.1 ; platform_release >= "9.0" and platform_release < "18.0" and python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-pushkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-quartz==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-quicklookthumbnailing==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-replaykit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-safariservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "15.0" + pyobjc-framework-safetykit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" + pyobjc-framework-scenekit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" + pyobjc-framework-screencapturekit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.4" + pyobjc-framework-screensaver==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-screentime==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-scriptingbridge==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "9.0" + pyobjc-framework-searchkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-security==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-securityfoundation==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-securityinterface==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-servicemanagement==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "10.0" + pyobjc-framework-sharedwithyou==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" + pyobjc-framework-sharedwithyoucore==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" + pyobjc-framework-shazamkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "21.0" + pyobjc-framework-social==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" + pyobjc-framework-soundanalysis==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-speech==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-spritekit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "13.0" + pyobjc-framework-storekit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "11.0" + pyobjc-framework-syncservices==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-systemconfiguration==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc-framework-systemextensions==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "19.0" + pyobjc-framework-threadnetwork==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "22.0" + pyobjc-framework-uniformtypeidentifiers==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-usernotifications==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" + pyobjc-framework-usernotificationsui==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-videosubscriberaccount==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "18.0" + pyobjc-framework-videotoolbox==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "12.0" + pyobjc-framework-virtualization==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "20.0" + pyobjc-framework-vision==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" and platform_release >= "17.0" + pyobjc-framework-webkit==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pyobjc==9.0.1 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Darwin" + pypiwin32==223 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows" + python-dotenv==1.0.1 ; python_version >= "3.8" and python_version < "4.0" + pyttsx4==3.0.15 ; python_version >= "3.8" and python_version < "4.0" + pywin32==306 ; python_version >= "3.8" and python_version < "4.0" and platform_system == "Windows" + reportlab==4.1.0 ; python_version >= "3.8" and python_version < "4" + requests==2.31.0 ; python_version >= "3.8" and python_version < "4.0" + six==1.16.0 ; python_version >= "3.8" and python_version < "4.0" + sniffio==1.3.0 ; python_version >= "3.8" and python_version < "4.0" + speechrecognition==3.10.1 ; python_version >= "3.8" and python_version < "4.0" + tqdm==4.66.2 ; python_version >= "3.8" and python_version < "4.0" + typing-extensions==4.9.0 ; python_version >= "3.8" and python_version < "4.0" + urllib3==2.2.0 ; python_version >= "3.8" and python_version < "4.0" [options.entry_points] console_scripts = diff --git a/setup.py b/setup.py index 3e9b619..9f45565 100644 --- a/setup.py +++ b/setup.py @@ -45,17 +45,16 @@ long_description_content_type="text/markdown", license="Apache Software License", name="akande", - version="0.0.3", + version="0.0.4", url="https://github.com/sebastienrousseau/akande", packages=find_packages(), install_requires=requirements, - python_requires=">=3.7", + python_requires=">=3.8", classifiers=[ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.7", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10",