semvec/pypi-packages huggingface dataset:
strcompat 0.1.0a0
A Python library handling conversions `unicode` <-> UTF-8 `str`s (Python 2), `unicode` <-> URI `str`s (Python 2 and 3), and `unicode` <-> `str`s in the filesystem encoding (Python 2).
Requires Python: >=2

# strcompat

A Python library handling conversions `unicode` <-> UTF-8 `str`s (Python 2), `unicode` <-> URI `str`s (Python 2 and 3), and `unicode` <-> `str`s in the filesystem encoding (Python 2).

Different versions of Python treat `str` and `unicode` differently:

- In **Python 2**, `str` is a byte string, and `unicode` is a Unicode string.
- In **Python 3**, `str` is a Unicode string.

Windows systems running Python 2 are especially prone to Unicode issues:

- The default system encoding is often ASCII - too limited for many real-world text values.
- APIs like `open()`, `os.listdir()`, `os.path`, `subprocess`, and many Windows-specific APIs expect `str` values, not `unicode`.
- The filesystem encoding (`mbcs`) and console encodings (`cp936`, etc.) are not UTF-8.

This library ensures that Unicode data is properly encoded to native `str` when required - for example, encoding file paths, URIs, or command-line arguments.

It handles the following conversions:


| Function | Python 2 | Python 3 |
|----------|----------|----------|
| `unicode_to_utf_8_string` | `unicode` -> UTF-8 `str` | No-op |
| `utf_8_string_to_unicode` | UTF-8 `str` -> `unicode` | No-op |
| `unicode_to_uri_string` | `unicode` -> URI-encoded `str` | `str` -> URI-encoded `str` |
| `uri_string_to_unicode`   | URI `str` -> decoded `unicode` | URI `str` -> decoded `str` |
| `unicode_to_filesystem_string` | `unicode` -> `str` in filesystem encoding  | No-op |
| `filesystem_string_to_unicode` | `str` in filesystem encoding -> `unicode` | No-op |

## Usage Example

On a Windows machine with:

- `sys.getdefaultencoding() == 'ascii'`
- `sys.getfilesystemencoding() == 'mbcs'`
- `locale.getpreferredencoding() == 'cp936'`
- `sys.stdout.encoding == 'cp936'`
- `sys.stderr.encoding == 'cp936'`

```python
>>> from strcompat import *
>>> u = u"测试A1你我他中文123!@#￥%（）【】～*"

>>> unicode_to_utf_8_string(u)
# Python 2:
'\xe6\xb5\x8b\xe8\xaf\x95A1\xe4\xbd\xa0\xe6\x88\x91\xe4\xbb\x96\xe4\xb8\xad\xe6\x96\x87123!@#\xef\xbf\xa5%\xef\xbc\x88\xef\xbc\x89\xe3\x80\x90\xe3\x80\x91\xef\xbd\x9e*'
# Python 3:
'测试A1你我他中文123!@#￥%（）【】～*'

>>> utf_8_string_to_unicode(unicode_to_utf_8_string(u)) == u
# Python 2 and 3:
True

>>> unicode_to_uri_string(u)
# Python 2 and 3:
'%E6%B5%8B%E8%AF%95A1%E4%BD%A0%E6%88%91%E4%BB%96%E4%B8%AD%E6%96%87123%21%40%23%EF%BF%A5%25%EF%BC%88%EF%BC%89%E3%80%90%E3%80%91%EF%BD%9E%2A'

>>> uri_string_to_unicode(unicode_to_uri_string(u)) == u
# Python 2 and 3:
True

>>> unicode_to_filesystem_string(u)
# Python 2: '\xb2\xe2\xca\xd4A1\xc4\xe3\xce\xd2\xcb\xfb\xd6\xd0\xce\xc4123!@#\xa3\xa4%\xa3\xa8\xa3\xa9\xa1\xbe\xa1\xbf\xa1\xab*'
# Python 3:
'测试A1你我他中文123!@#￥%（）【】～*'

>>> filesystem_string_to_unicode(unicode_to_filesystem_string(u)) == u
# Python 2 and 3:
True
```

## Contributing

Contributions are welcome! Please submit pull requests or open issues on the GitHub repository.

## License

This project is licensed under the [MIT License](LICENSE).
PythonDm32 1.1.0
dm.dll user to python
Requires Python: >=3.6

pip 安装 pip install pythonDm

一个python调用大漠插件的库， 支持7.2450版本和3.1233版本的dm

7.2450 版本会获取管理员权限， 或者提前手动在程序属性里面设置管理员启动也可以。

7.2450版本需要 购买大漠插件的 vip注册码和附加码

3.1233版本可以免注册调用。这个版本是免费使用版本的最后版本。

"""
    导入方式：
    from PythonDm import *
    from PythonDm import Dm
    import PythonDm
"""

from PythonDm import Dm
import time


def test_create_dm_vip():
    dm = Dm(version=7, reg_code_append_key="your_key", reg_code="your_reg_code")
    while 1:
        print('循环中')
        time.sleep(1)


def test_create_dm_3():
    dm = Dm()
    while 1:
        print('循环中')
        time.sleep(1)

if __name__ == '__main__':
    test_create_dm_vip()
NewThread 1.0.2
threading.Thread类的继承和拓展
Requires Python: >=3.6

这个模块只要包括两个类： 

     一 ThreadEx：
   ThreadEx 类 继承了常用模块 threading 的 Thread  类
完整继承了Thread的6个参数： group=None, target=None, name=None, args=(), kwargs=None, *, daemon=None
新增了方法： 暂停线程 
           恢复线程
           强制停止线程
新增了： 线程状态属性       self.status
新增了： 系统级别线程id属性
        self.tid: 系统级别的id 这个 类创建的 对象
        python thread类对象，通常也称为 线程id 他是 thread操作的句柄对象。 这里我在执行thread对象时候执行获取了线程在系统里面的id
        然后通过系统api 根据 系统里面的线程id来控制线程的 暂停 停止 继续，结束 。这里对于默认的Thread 线程类的继承 

总结： 这个类适合 创建 操作 单个线程， 如果需要多个线程同时操作，可以使用 ThreadManage 类来实现更高级的功能。

    二 ThreadManage:
  调用 ThreadEx 类。 创建对象 创建对象时候每一次创建都会被记录线程id到ThreadManage的全局列表中， 后续使用这个列表对所有线程进行批量管理
可以批量停止全部线程，暂停全部线程，恢复全部线程运行。
这个类适合在需要管理多个线程时候使用

    pip 安装： 
"       pip install NewThread     "

    更新：
    1.01 版本做了部分更新。优化。增加了 停止单个线程的功能。
    1.02 版本新增了 清理 线程列表功能，防止线程列表 成员 在极端情况下会 一直增加