semvec/pypi-packages huggingface dataset:
adroitconfig-py 0.1.1
Lightweight Python wrapper for Adroit OLE server configuration
License: MIT
Requires Python: >=3.10

# adroitconfig-py

Python wrapper package for the Adroit OLE server configuration. Provides a friendly `AdroitConfigOLE` class
and a module-level `adroitconfig` object for interactive use.

## Requirements

- Python 3.x on Windows (requires `pywin32>=305`)

Installation (editable/development):

```bash
python -m pip install -e .
```

Usage:

```python
from adroitconfig import AdroitConfigOLE

# connect when needed
adroitconfig: AdroitConfigOLE = AdroitConfigOLE()
adroitconfig.CreateAgent("MyAnalog1", "My first analog agent", "Analog")
```
fin-data-client 0.1.0
简洁的金融数据服务 Python 客户端 SDK
License: MIT
Requires Python: >=3.9
Keywords: finance, data, client, sdk

# FinData Client SDK

一个基于 FastAPI 服务端和 httpx 客户端的现代化金融数据 Python SDK。

## 功能概览

- 同步客户端 `FinDataClient`
- 异步客户端 `AsyncFinDataClient`
- 获取股票日线数据
- 批量获取多只股票数据
- 搜索股票
- 获取股票基本信息
- 获取系统状态

---

## 1. 本地开发与测试

### 1.1 启动服务端

在项目根目录（包含 `server.py` 的目录）运行：

```bash
uvicorn server:app --reload --host 0.0.0.0 --port 8000
```

确认终端中看到服务启动日志，例如：

```text
🚀 FinData服务启动于 2023-...
```

### 1.2 本地安装依赖

开发环境下，先安装服务端/客户端依赖：

```bash
pip install -r requirements.txt
pip install httpx
```

### 1.3 运行测试脚本

项目根目录下已经提供 `test_client.py`，用于本地联调测试。

在保持服务端运行的情况下，另开一个终端，在项目根目录执行：

```bash
python test_client.py
```

该脚本会：

- 使用 `FinDataClient` 调用服务端：
  - 获取服务状态
  - 获取单只股票日线数据
  - 批量获取多只股票数据
  - 获取股票基本信息
  - 获取系统状态
- 使用 `AsyncFinDataClient` 异步获取一只股票的日线数据

如果能正常打印出状态、`DataFrame` 的行数和部分内容，说明本地联调用例通过。

---

## 2. 打包与分发 PyPI 包

SDK 的打包配置位于 `pyproject.toml`，包名为：`fin-data-client`，导入名为：`findata_client`。

### 2.1 安装打包和上传工具

仅需执行一次：

```bash
pip install build twine
```

### 2.2 构建分发包

在项目根目录（包含 `pyproject.toml` 的目录）执行：

```bash
python -m build
```

执行成功后，会在 `dist/` 目录下生成：

- `fin_data_client-<version>.tar.gz`
- `fin_data_client-<version>-py3-none-any.whl`

其中 `<version>` 由 `pyproject.toml` 中的 `version` 字段决定（当前为 `0.1.0`）。

---

## 3. 发布到 TestPyPI（推荐先验证）

### 3.1 上传到 TestPyPI

1. 在 https://test.pypi.org/ 注册账号。
2. 在项目根目录执行：

```bash
twine upload --repository testpypi dist/*
```

根据提示输入 TestPyPI 的用户名/密码或 token。

### 3.2 在干净环境中测试安装

建议使用一个新的虚拟环境：

```bash
python -m venv venv
venv\\Scripts\\activate  # Windows

pip install -i https://test.pypi.org/simple/ fin-data-client
```

然后在该环境中启动服务端（本机或远程都可以），编写或运行如下测试代码：

```python
from findata_client import FinDataClient

client = FinDataClient(base_url="http://localhost:8000")
df = client.get_daily_data("600519.SH")
print(df.head())
```

如果能够正常获取数据并输出，说明从 TestPyPI 安装的包工作正常。

---

## 4. 发布到正式 PyPI

确认在 TestPyPI 上验证通过后，可以发布到正式 PyPI。

1. 在 https://pypi.org/ 注册账号。
2. 在项目根目录执行：

```bash
twine upload dist/*
```

上传成功后，其他用户即可通过以下命令安装：

```bash
pip install fin-data-client
```

并在代码中使用：

```python
from findata_client import FinDataClient, AsyncFinDataClient

client = FinDataClient(base_url="http://your-server:8000")
```

---

## 5. 客户端快速使用示例

### 5.1 同步客户端

```python
from findata_client import FinDataClient

client = FinDataClient(base_url="http://localhost:8000")

# 获取服务状态
status = client.get_status()

# 获取单只股票日线数据
df = client.get_daily_data("600519.SH")

# 批量获取多只股票数据
batch = client.get_batch_data(["000001.SZ", "600519.SH"], days=10)

# 获取股票基本信息
basic = client.get_stock_basic("600519.SH")

# 获取系统状态
system = client.get_system_status()
```

### 5.2 异步客户端

```python
import asyncio
from findata_client import AsyncFinDataClient

async def main():
    async with AsyncFinDataClient(base_url="http://localhost:8000") as client:
        df = await client.get_daily_data("000001.SZ")
        print(df.head())

asyncio.run(main())
```
libcalab-ogre3d 0.2.4
Library for character animation and rendering based on ogre3d
License: MIT
Requires Python: ==3.12.*

# Example code 1 (fbx rendering using timeline). 
```
import os,sys,pdb,math
from libcalab_ogre3d import *
import numpy as np


def onFrameChanged(iframe):
    global skin1, skin2
    print(iframe)
    skin1.setPose(fbx.loader.mMotion.pose(iframe))
    skin2.setPose(fbx.loader.mMotion.pose(iframe))


            

this=RE.createMainWin(sys.argv)
skelFile='../../Mixamo/fbx_withSkin/bigvegas_Walking.fbx' 
skinScale=1

fbx=RE.FBXloader(skelFile, skinScale=skinScale, useTexture=True, simplifyMesh=False)

# draw skeleton
skin1=RE.createSkin(fbx.loader)
skin1.setScale(skinScale, skinScale, skinScale)

# draw mesh
skin2=RE.createFBXskin(fbx)
skin2.setScale(skinScale, skinScale, skinScale)


g_motion2=fbx.loader.mMotion
mTimeline=RE.Timeline("Timeline", g_motion2.numFrames(), 1/g_motion2.frameRate())
m.startMainLoop() # this finishes when program finishes
```
# example code 2 (bvh loading without using timeline).
```
import os, sys, pdb, math, random
from libcalab_ogre3d import *
import numpy as np

elapsedTime=0
            
def frameMove(fElapsedTime):
    global elapsedTime, mLoader, mMotion,mSkin

    elapsedTime=elapsedTime+fElapsedTime
    currFrame=round(elapsedTime*30) # assuming 120hz

    if currFrame>=mMotion.numFrames():
        return
    mLoader.setPose(mMotion.pose(currFrame))
    leftwristpos=mLoader.getBoneByName('LeftHand').getFrame().translation
    RE.draw("Sphere", leftwristpos*100, "wrist1", "red", 6)

    mSkin.setPose(mMotion.pose(currFrame))

def onCallback(w, uid):
    print(w.id())


this=RE.createMainWin(sys.argv)

this.addButton('hihi')
this.updateLayout()

mLoader=RE.createMotionLoaderExt('../Resource/motion/woody/wd2_2foot_walk_turn2.bvh')
mMotion=mLoader.mMotion

mSkin= RE.createSkin(mLoader);    # to create character
mSkin.scale(1,1,1);                    # this motion data is in cm unit 
mSkin.setPose(mMotion.pose(0));

RE.viewpoint().vpos.set(0, 50, 300)
RE.viewpoint().vat.set(0,40,0)
RE.viewpoint().update()

while True:
    if not RE.renderOneFrame(True):
        break

```


# Other examples
```
https://github.com/taesoobear/IPCDNNwalk
```

# Changelog 

## Version 0.1.5
- Automatically creates the `work` resource folder.

## Version 0.1.4
- Improved the SceneGraph UI.

## Version 0.1.3
- Fixed null pointer errors related to `Ogre::SceneNode`.
sage-pypi-publisher 0.1.5
Python bytecode compiler and PyPI publishing toolkit for monorepos
License: MIT
Requires Python: >=3.10
Keywords: pypi, publishing, bytecode, compiler, monorepo, packaging, wheel, build

# sage-pypi-publisher

A tiny toolkit to compile Python packages to bytecode, build wheels, and publish to PyPI/TestPyPI. Extracted from SAGE's internal `sage-dev` tooling and made standalone.

## Features
- Copy a package tree and compile `.py` → `.pyc` (keeps `__init__.py` and `_version.py`).
- Auto-adjust `pyproject.toml` / `MANIFEST.in` to include compiled artifacts and binary extensions.
- Build wheels with `python -m build`.
- Upload via `twine` (with `--dry-run` by default).
- Simple Typer-based CLI.

## Installation
```bash
pip install .
# or
pip install sage-pypi-publisher
```

## CLI
```bash
sage-pypi-publisher --help

# Compile only
sage-pypi-publisher compile /path/to/pkg -o /tmp/out

# Compile + build
sage-pypi-publisher build /path/to/pkg -o /tmp/out

# Compile + build + upload to TestPyPI
sage-pypi-publisher build /path/to/pkg -o /tmp/out -u -r testpypi --no-dry-run

# Upload an existing wheel
sage-pypi-publisher upload dist/yourpkg-0.1.0-py3-none-any.whl -r pypi --no-dry-run
```

## Python API
```python
from pathlib import Path
from pypi_publisher.compiler import BytecodeCompiler

compiler = BytecodeCompiler(Path("/path/to/pkg"))
compiled = compiler.compile_package()
wheel = compiler.build_wheel(compiled)
compiler.upload_wheel(wheel, repository="testpypi", dry_run=True)
```

## Notes
- Requires `python -m build` and `twine` available.
- No backward compatibility with `sage-dev` CLI; PyPI commands have been removed from SAGE.
- Designed to be monorepo-friendly but works with any package path that contains `pyproject.toml`.