#!/usr/bin/env python3 from setuptools import setup import os from os import walk, path PYPI_NAME = "skill-ovos-fallback-kagi" # pip install PYPI_NAME VERSION = "0.1.10" URL = f"https://code.sitosis.com/rudism/{PYPI_NAME}" SKILL_CLAZZ = "KagiSkill" # needs to match __init__.py class name # below derived from github url to ensure standard skill_id SKILL_AUTHOR, SKILL_NAME = URL.split(".com/")[-1].split("/") SKILL_PKG = SKILL_NAME.lower().replace('-', '_') PLUGIN_ENTRY_POINT = f'{SKILL_NAME.lower()}.{SKILL_AUTHOR.lower()}={SKILL_PKG}:{SKILL_CLAZZ}' # skill_id=package_name:SkillClass # Function to parse requirements from file def get_requirements(requirements_filename: str = "requirements.txt"): requirements_file = path.join(path.abspath(path.dirname(__file__)), requirements_filename) if path.isfile(requirements_file): with open(requirements_file, 'r', encoding='utf-8') as r: requirements = r.readlines() requirements = [r.strip() for r in requirements if r.strip() and not r.strip().startswith("#")] if 'MYCROFT_LOOSE_REQUIREMENTS' in os.environ: print('USING LOOSE REQUIREMENTS!') requirements = [r.replace('==', '>=').replace('~=', '>=') for r in requirements] return requirements return [] # Function to find resource files def find_resource_files(): resource_base_dirs = ("locale", "ui", "vocab", "dialog", "regex", "skill") base_dir = path.dirname(__file__) package_data = ["*.json"] for res in resource_base_dirs: if path.isdir(path.join(base_dir, res)): for (directory, _, files) in walk(path.join(base_dir, res)): if files: package_data.append( path.join(directory.replace(base_dir, "").lstrip('/'), '*')) return package_data with open(path.join(path.abspath(path.dirname(__file__)), "README.md"), "r") as f: long_description = f.read() # Setup configuration setup( name=PYPI_NAME, version=VERSION, description='ovos Kagi skill', long_description=long_description, long_description_content_type="text/markdown", url=URL, author='Rudis Muiznieks', author_email='rudis@sitosis.com', license='Apache-2.0', package_dir={SKILL_PKG: ""}, package_data={SKILL_PKG: find_resource_files()}, packages=[SKILL_PKG], include_package_data=True, install_requires=get_requirements(), keywords='ovos skill plugin', entry_points={'ovos.plugin.skill': PLUGIN_ENTRY_POINT} )