CChildHarbor
Spațiu de programare cu AI

Procese copil Python cu limită de timp

Rulează text Python de încredere de maximum 4096 caractere într-un director existent cu limită de 50–5000 ms.

● ● ●ChildHarbor●
Fluxuri de lucru · Procese copil Python cu limită de timp ×
import math, os, subprocess, sys
from pathlib import Path

def run_trusted_python(script, seconds, folder):
    if type(script) is not str or len(script) > 4096:
        raise ValueError("child.script")
    if type(seconds) not in (int, float) or not .05 <= seconds <= 5 or not math.isfinite(seconds):
        raise ValueError("child.timeout")
    if not isinstance(folder, (str, Path)) or not Path(folder).is_dir():
        raise ValueError("child.folder")
    return subprocess.run([sys.executable, "-I", "-S", "-X", "utf8", "-c", script],
        cwd=folder, timeout=seconds, capture_output=True, text=True,
        encoding="utf-8", check=False,
        creationflags=subprocess.CREATE_NO_WINDOW if os.name == "nt" else 0)
✳Procese copil Python cu limită de timp
✓ ModificăriVerifică înainte de aplicare ↗
Ilustrarea spațiului de lucru
Verifică înainte de aplicareCompară comportamentul real cu rezultatul așteptat. Dacă o verificare eșuează, cercetează cauza înainte de alte modificări.
ModeleConfigurează un endpoint compatibil OpenAI sau Anthropic cu URL-ul de bază și cheia API, dacă este necesară. Testează conexiunea. Serverul local trebuie să ruleze; instrumentele externe pot transmite date separat.
ProiectTestează Unicode, ieșiri eșuate și oprirea copilului direct, respinge limite invalide fără promisiuni de izolare sau curățare a descendenților.
Fluxuri de lucru

Procese copil Python cu limită de timp

Fluxuri de lucru ↗
Fluxuri de lucru
import math, os, subprocess, sys
from pathlib import Path

def run_trusted_python(script, seconds, folder):
    if type(script) is not str or len(script) > 4096:
        raise ValueError("child.script")
    if type(seconds) not in (int, float) or not .05 <= seconds <= 5 or not math.isfinite(seconds):
        raise ValueError("child.timeout")
    if not isinstance(folder, (str, Path)) or not Path(folder).is_dir():
        raise ValueError("child.folder")
    return subprocess.run([sys.executable, "-I", "-S", "-X", "utf8", "-c", script],
        cwd=folder, timeout=seconds, capture_output=True, text=True,
        encoding="utf-8", check=False,
        creationflags=subprocess.CREATE_NO_WINDOW if os.name == "nt" else 0)
Spațiu de programare cu AI

Revizuiește codul de gestionare a proceselor păstrând limita de încredere

ChildHarbor este un client de programare cu IA pentru Windows în care poți examina codul de gestionare a proceselor într-o conversație despre proiect. Începe precizând ce cod este considerat de încredere pentru execuție și ce trebuie să observe apelantul. Cere modelului conectat să inspecteze codul existent de gestionare înainte de a sugera modificări, astfel încât propunerea să îi păstreze atât scopul, cât și limitele.

O sarcină concretă este codul de lansare a unui proces copil Python de încredere, cu un director de lucru existent și un timp-limită delimitat. Discută ieșirea Unicode, terminările cu eroare și ce se întâmplă când procesul copil direct depășește timpul-limită. Păstrează aceste cerințe separate de izolarea de securitate: acceptarea executării unui cod de încredere nu transformă acest cod de gestionare într-un mediu izolat pentru intrări arbitrare.

Revizuiește modificarea propusă în raport cu propriile cazuri de test pentru procese. Verifică ieșirea capturată, starea terminării și calea de depășire a timpului pentru copilul direct în mediul de dezvoltare. Dacă procesele descendente contează, definește și investighează explicit acea cerință suplimentară. Un test reușit al timpului-limită pentru un copil nu dovedește că întregul arbore de procese este eliminat; păstrează această distincție în revizuire.

ChildHarbor acceptă conexiuni la endpointuri compatibile cu OpenAI sau Anthropic, cu date de autentificare când sunt necesare. Un model IA nefiltrat poate fi selectat acolo unde endpointul îl oferă. Serverul și modelul determină contextul, instrumentele disponibile și restricțiile; alegerea unui model nu autorizează rularea unui cod care nu este de încredere și nu validează codul de gestionare propus.

Întrebări înainte de modificarea codului de lansare a proceselor

Ce trebuie să precizez despre intrarea de încredere?

Identifică cine furnizează scriptul și de ce aplicația permite rularea lui. Păstrează explicită această ipoteză în sarcină. Dacă scripturile pot proveni de la utilizatori care nu sunt de încredere, problema securității este mai amplă decât adăugarea unui timp-limită la codul existent.

Implică un timp-limită terminarea tuturor descendenților?

Nu. Revizuiește exact ce proces controlează implementarea și testează comportamentul în mediul tău. Dacă aplicația necesită eliminarea arborelui de procese, formuleaz-o ca cerință explicită separată și inspectează implementarea specifică platformei, fără a o deduce din gestionarea copilului direct.

De ce să testez ieșirea Unicode, precum și terminările cu eroare?

Ele exercită părți diferite ale contractului cu apelantul. Include textul și comportamentul de terminare așteptate, astfel încât propunerea să le păstreze pe ambele. Un proces poate rula corect în timp ce decodarea ieșirii sau raportarea erorilor oferă aplicației un rezultat inutilizabil.

Ar trebui să execut fiecare script sugerat în conversație?

Revizuiește codul și efectele sale înainte de a-l rula. Conversația din spațiul de lucru poate ajuta la explicarea unei propuneri, dar decizia de încredere îți aparține. Folosește cazuri de test adecvate proiectului și nu trata textul generat de model ca autorizare pentru operații arbitrare.

Descarcă pentru Windows ↗

ChildHarbor · Actualizat 2026-10-25