semvec/pypi-packages huggingface dataset:
surrodocs-collector 0.1.0
Add your description here
Requires Python: >=3.12

# surrodocs-collector



## 기술 스택
- Python 3.12
- UV (Python 패키지 관리자)
- Docker
- GitLab CI/CD
- Pytest (테스트 프레임워크)

## 개발 환경 설정
### 패키지 관리
- UV를 사용하여 Python 패키지 관리
- 의존성 관리는 `pyproject.toml`을 통해 수행

### 코드 스타일 및 품질
- Ruff: 코드 린터 및 포맷터
- Line 길이: 120자
- Pytest: 단위 테스트 및 통합 테스트
- GitLab CI: 지속적 통합/배포

## 프로젝트 구조
헥사고날 아키텍처를 따르는 폴더 구조:

```
src/
├── core/           # 도메인 로직과 엔티티
├── ports/          # 인터페이스 정의 (입력/출력 포트)
│   ├── in/         # 입력 포트 인터페이스 (서비스 요청)
│   └── out/        # 출력 포트 인터페이스 (서비스 응답)
├── adapters/       # 외부 시스템과의 통신 구현
│   ├── in/         # 입력 어댑터 (API, CLI 등)
│   └── out/        # 출력 어댑터 (DB, 외부 서비스 등)
└── application/    # 유스케이스 구현

tests/
├── core/           # 도메인 로직 테스트
├── ports/          # 포트 인터페이스 테스트
│   ├── in/         # 입력 포트 테스트
│   └── out/        # 출력 포트 테스트
├── adapters/       # 어댑터 테스트
│   ├── in/         # 입력 어댑터 테스트
│   └── out/        # 출력 어댑터 테스트
└── application/    # 유스케이스 테스트
```

## 개발 가이드라인
1. 코드 스타일
   - Ruff를 사용하여 코드 린팅 및 포맷팅
   - 최대 라인 길이: 120자

2. 테스트
   - Pytest를 사용한 단위 테스트 작성
   - 테스트 커버리지 유지
   - 각 모듈별로 해당하는 테스트 파일 작성
   - 테스트 파일명은 `test_*.py` 형식으로 작성

3. CI/CD
   - GitLab CI를 통한 자동화된 빌드 및 테스트
   - Docker 컨테이너화된 애플리케이션 배포
pyevaljs4 0.2.0
A high-performance Python library that relies on nodejs to execute JavaScript
Requires Python: >=3.7.0

### A high-performance Python library that relies on nodejs to execute JavaScript

---

### Environments

**Please note that you need to install Node.js and set up the NODE_PATH or NODE environment variable properly!**  
*If not set, the default will use the Node.js in the system's path.*

---

### Installation
```text
pip install pyevaljs4
```

---

### Quickstart
```python
import pyevaljs4

# example 1
rt = pyevaljs4.compile_("function f(a,b){console.log(a,b);return a+b;}")
res = rt.call('f', 'x', 'y')
print(res)
assert res == "xy"
# Another way of passing parameters
res = rt.call('f', arg_list=['x', 'y'])
print(res)
assert res == "xy"
# Other equivalent calling methods
print(rt.f('x',  'y'))
print(rt.f(arg_list=['x', 'y']))
# close runtime
rt.close()

# example 2
with pyevaljs4.compile_("function f(a,b){console.log(a,b);return a+b;}") as rt:
    res = rt.call('f', 'x', 'y')
    print(res)
    assert res == "xy"

# example 3
# empty context
rt = pyevaljs4.compile_()
# Add the function f to this context
rt.eval("function f(a,b){console.log(a,b);return a+b;}")
res = rt.call('f', 'x', 'y')
print(res)
assert res == 'xy'
# Other calling methods
res = rt.eval("f('x', 'y')")
print(res)
assert res == "xy"
rt.close()

# example 4
# Call JS asynchronous function
rt = pyevaljs4.compile_()
rt.eval("async function f(a,b){console.log(a,b);return a+b;}")
# To call the JS asynchronous function, you need to pass async_js_func=True
res = rt.call('f', 'x', 'y', async_js_func=True)
print(res)
assert res == "xy"
res = rt.f('x', 'y', async_js_func=True)
print(res)
assert res == "xy"
# The shortcut for calling the JS asynchronous function can only be used this way.
# other cases are not supported.
res = rt.eval('await f("x", "y")')
print(res)
assert res == "xy"
rt.close()
```
---

### Use a custom version of Node.js
- By setting environment variables to use a custom version of Node, you only need to set the NODE_PATH or NODE environment variables.  

```python
import os
# Highest priority
os.environ['NODE_PATH'] = '/path/to/node.exe'

# Second priority
os.environ['NODE'] = '/path/to/node.exe'
```