pyopenide-client 1.1.2
Упрощенные клиенты для OpenIDE с разными уровнями простоты синтаксиса
License: MIT
Requires Python: >=3.7
Keywords: openide, container, docker, development, ide, python, client

# PyOpenIDE Client

Коллекция упрощенных клиентов для OpenIDE с разными уровнями простоты синтаксиса.

## 🚀 Установка

```bash
pip install pyopenide-client
```

## 📖 Быстрый старт

### Ультра-простой синтаксис (рекомендуется)

```python
from pyopenide_client import *

# Создание файла
file_create("test.py", "print('Hello OpenIDE!')")

# Чтение файла
content = file_read("test.py")
print(content)

# Запуск Python кода
result = py("print('Hello from OpenIDE!')")
print(result)

# Системные команды
print(pwd())  # Текущая директория
print(whoami())  # Пользователь
print(date())  # Дата и время
print(ps())  # Процессы
```

### Простой клиент

```python
from pyopenide_client import SimpleOpenIDE

# Создание клиента
ide = SimpleOpenIDE()

# Работа с файлами
ide.file_create("app.py", "print('Hello World!')")
content = ide.file_read("app.py")
print(content)

# Создание папок
ide.folder_create("myproject")
ide.folder_open("myproject")

# Виртуальные окружения
ide.venv_create("myenv")
ide.venv_activate()
ide.pip_install("requests")

# Запуск кода
result = ide.run_python("app.py")
print(result)
```

### Магический клиент

```python
from pyopenide_client import ide

# Магические методы
ide.file.create("script.py", "print('Magic!')")
ide.folder.create("project")
ide.venv.create("env")
ide.pip.install("flask")

# Запуск
result = ide.run.python("script.py")
print(result)
```

### Декораторный клиент

```python
from pyopenide_client import openide, python, shell, run

# Декораторы
@openide
def my_function():
    return "Hello from OpenIDE!"

@python
def calculate(x, y):
    return x + y

@shell
def system_info():
    return "uname -a"

# Использование
result1 = my_function()
result2 = calculate(5, 3)
result3 = system_info()
```

## 🎯 Уровни синтаксиса

### 1. Ультра-простой (Ultra Simple)

```python
from pyopenide_client import *

# Файлы
file_create("test.txt", "Hello!")
content = file_read("test.txt")
file_delete("test.txt")

# Папки
folder_create("mydir")
folder_list()
folder_delete("mydir")

# Python
result = py("print('Hello!')")
result = run_python("script.py")

# Система
print(pwd())
print(whoami())
print(date())
print(ps())
```

### 2. Простой (Simple)

```python
from pyopenide_client import SimpleOpenIDE

ide = SimpleOpenIDE()

# Файлы
ide.file_create("app.py", "print('Hello!')")
ide.file_read("app.py")
ide.file_delete("app.py")

# Папки
ide.folder_create("project")
ide.folder_list()
ide.folder_delete("project")

# Python
ide.run_python("script.py")
ide.pip_install("requests")
```

### 3. Магический (Magic)

```python
from pyopenide_client import ide

# Магические атрибуты
ide.file.create("test.py", "print('Magic!')")
ide.folder.create("project")
ide.venv.create("env")
ide.pip.install("flask")
ide.run.python("test.py")
```

### 4. Декораторный (Decorator)

```python
from pyopenide_client import openide, python, shell

@openide
def my_task():
    return "Task completed!"

@python
def math_calc(x, y):
    return x * y

@shell
def get_info():
    return "ls -la"
```

## 🔧 API Reference

### Глобальные функции

#### Файлы
- `file_create(name, content)` - Создать файл
- `file_read(name)` - Читать файл
- `file_delete(name)` - Удалить файл
- `file_rename(old, new)` - Переименовать файл
- `file_copy(source, target)` - Копировать файл
- `file_move(source, target)` - Переместить файл
- `file_info(name)` - Информация о файле

#### Папки
- `folder_create(name)` - Создать папку
- `folder_open(name)` - Открыть папку
- `folder_delete(name)` - Удалить папку
- `folder_rename(old, new)` - Переименовать папку
- `folder_copy(source, target)` - Копировать папку
- `folder_move(source, target)` - Переместить папку
- `folder_list(name)` - Список файлов
- `ls(path)` - Алиас для folder_list

#### Виртуальные окружения
- `venv_create(name)` - Создать venv
- `venv_activate()` - Активировать venv
- `venv_deactivate()` - Деактивировать venv
- `venv_list()` - Список venv
- `venv_remove(name)` - Удалить venv

#### Python пакеты
- `pip_install(package)` - Установить пакет
- `pip_uninstall(package)` - Удалить пакет
- `pip_list()` - Список пакетов

#### Запуск кода
- `py(code)` - Выполнить Python код
- `sh(command)` - Выполнить shell команду
- `run_python(script)` - Запустить Python скрипт
- `run_shell(command)` - Запустить shell команду

#### Системные команды
- `pwd()` - Текущая директория
- `whoami()` - Текущий пользователь
- `date()` - Дата и время
- `uptime()` - Время работы системы
- `ps()` - Процессы
- `free()` - Использование памяти
- `df()` - Использование диска
- `uname()` - Информация о системе

## 📝 Примеры проектов

### Создание веб-приложения

```python
from pyopenide_client import *

# Создание проекта
folder_create("webapp")
folder_open("webapp")

# Создание файлов
file_create("app.py", """
from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello OpenIDE!'

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
""")

file_create("requirements.txt", "flask==2.3.0")

# Создание виртуального окружения
venv_create("venv")
venv_activate()

# Установка зависимостей
pip_install("flask")

# Запуск приложения
result = run_python("app.py")
print(result)
```

### Анализ данных

```python
from pyopenide_client import *

# Создание проекта
folder_create("data_analysis")
folder_open("data_analysis")

# Создание скрипта
file_create("analyze.py", """
import pandas as pd
import numpy as np

# Создание данных
data = {'x': [1, 2, 3, 4, 5], 'y': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)

print("Данные:")
print(df)
print(f"Среднее y: {df['y'].mean()}")
""")

# Установка пакетов
venv_create("data_env")
venv_activate()
pip_install("pandas numpy")

# Запуск анализа
result = run_python("analyze.py")
print(result)
```

### Тестирование API

```python
from pyopenide_client import *

# Создание тестов
file_create("test_api.py", """
import requests
import json

def test_api():
    try:
        response = requests.get('https://api.github.com/users/octocat')
        data = response.json()
        print(f"Пользователь: {data['login']}")
        print(f"Репозитории: {data['public_repos']}")
        return True
    except Exception as e:
        print(f"Ошибка: {e}")
        return False

if __name__ == '__main__':
    test_api()
""")

# Установка зависимостей
venv_create("test_env")
venv_activate()
pip_install("requests")

# Запуск тестов
result = run_python("test_api.py")
print(result)
```

## 🔧 Конфигурация

### Настройка OpenIDE

```python
from pyopenide_client import *

# Проверка доступности global_openide
if check_global_openide():
    print("global_openide доступен!")
else:
    print("global_openide не установлен")

# Информация о пакете
info = get_info()
print(f"Версия: {info['version']}")
print(f"Доступные клиенты: {info['clients']}")
```

## 🐛 Обработка ошибок

```python
from pyopenide_client import *

try:
    # Попытка создать файл
    file_create("test.txt", "Hello!")
    print("Файл создан успешно")
except Exception as e:
    print(f"Ошибка при создании файла: {e}")

try:
    # Попытка запустить код
    result = py("print('Hello OpenIDE!')")
    print(f"Результат: {result}")
except Exception as e:
    print(f"Ошибка при выполнении кода: {e}")
```

## 📚 Дополнительные ресурсы

- [PyPI страница](https://pypi.org/project/pyopenide-client/)
- [GitHub репозиторий](https://github.com/artemjs/OpenIDE/tree/pyopenide-client)
- [Документация OpenIDE](https://pypi.org/project/openide-client/)

## 🤝 Поддержка

Если у вас есть вопросы или проблемы:

1. Создайте issue на GitHub
2. Напишите на email: artemjson@gmail.com
3. Проверьте документацию

## 📄 Лицензия

MIT License - см. файл LICENSE для подробностей.

---

**Выберите свой уровень синтаксиса и начните кодить с OpenIDE!** 🚀