From 0c8177c965982d1ca6e8b8682d3c8604f8e77f78 Mon Sep 17 00:00:00 2001 From: shenjack <3695888@qq.com> Date: Tue, 15 Nov 2022 06:30:19 +0800 Subject: [PATCH] clean cprint --- Difficult_Rocket/utils/cprint/CMakeLists.txt | 19 ---- Difficult_Rocket/utils/cprint/build.ps1 | 12 --- Difficult_Rocket/utils/cprint/color_print.py | 79 --------------- Difficult_Rocket/utils/cprint/colors.py | 12 --- Difficult_Rocket/utils/cprint/compile.py | 39 ------- Difficult_Rocket/utils/cprint/cprint.c | 30 ------ Difficult_Rocket/utils/cprint/dll_load.py | 7 -- Difficult_Rocket/utils/cprint/py_cprint.c | 101 ------------------- Difficult_Rocket/utils/cprint/py_cprint.py | 16 --- Difficult_Rocket/utils/cprint/pycprint.pyi | 10 -- Difficult_Rocket/utils/cprint/setup.py | 30 ------ Difficult_Rocket/utils/cprint/test.ps1 | 15 --- 12 files changed, 370 deletions(-) delete mode 100644 Difficult_Rocket/utils/cprint/CMakeLists.txt delete mode 100644 Difficult_Rocket/utils/cprint/build.ps1 delete mode 100644 Difficult_Rocket/utils/cprint/color_print.py delete mode 100644 Difficult_Rocket/utils/cprint/colors.py delete mode 100644 Difficult_Rocket/utils/cprint/compile.py delete mode 100644 Difficult_Rocket/utils/cprint/cprint.c delete mode 100644 Difficult_Rocket/utils/cprint/dll_load.py delete mode 100644 Difficult_Rocket/utils/cprint/py_cprint.c delete mode 100644 Difficult_Rocket/utils/cprint/py_cprint.py delete mode 100644 Difficult_Rocket/utils/cprint/pycprint.pyi delete mode 100644 Difficult_Rocket/utils/cprint/setup.py delete mode 100644 Difficult_Rocket/utils/cprint/test.ps1 diff --git a/Difficult_Rocket/utils/cprint/CMakeLists.txt b/Difficult_Rocket/utils/cprint/CMakeLists.txt deleted file mode 100644 index f943b99..0000000 --- a/Difficult_Rocket/utils/cprint/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -cmake_minimum_required(VERSION 3.22) -project(cprint VERSION 0.0.1 LANGUAGES C) -# 环境 -set(CMAKE_BUILD_TYPE Debug) -set(CMAKE_C_STANDARD 99) -# 编译选项 -add_compile_options(-O3) -add_compile_options(-Wall) -add_compile_options(-Werror) -#add_compile_options(-shared) -#add_compile_options(-o ../../cprint.dll) -# 加一下py3.8的 path -include_directories(.) -include_directories(C:\\Users\\shenjack.SHENJACK-5600X\\AppData\\Local\\Programs\\Python\\Python38\\include\\.) -# 编译可执行 -#add_executable(cprint cprint.c) -# 编译动态链接库 -#add_executable(cprint cprint.c) -add_executable(py_cprint py_cprint.c) diff --git a/Difficult_Rocket/utils/cprint/build.ps1 b/Difficult_Rocket/utils/cprint/build.ps1 deleted file mode 100644 index e5a76bc..0000000 --- a/Difficult_Rocket/utils/cprint/build.ps1 +++ /dev/null @@ -1,12 +0,0 @@ - -Write-Output ==========_win-py3.8_========== -python3.8.exe ./setup.py build - -Write-Output ==========_win-py3.10_========== -python3.10.exe ./setup.py build - -Write-Output ==========_wsl-py3.8_========== -wsl.exe python3 setup.py build - -Write-Output ==========_wsl-py3.10_========== -wsl.exe python3.10 setup.py build diff --git a/Difficult_Rocket/utils/cprint/color_print.py b/Difficult_Rocket/utils/cprint/color_print.py deleted file mode 100644 index 77641cb..0000000 --- a/Difficult_Rocket/utils/cprint/color_print.py +++ /dev/null @@ -1,79 +0,0 @@ -import os - -os.system('') - -reset = '\033[0m' - -print('A 000') - -do = False - - -def rgb(r, g, b): - return 2, r, g, b - - -i_list = list(range(30, 39, 1)) -# i_list = [39] -j_list = list(range(40, 49, 1)) -# j_list = [49] - -for i in i_list: - for j in j_list: - print(f'\033[{i};{j}m{i}|{j} {reset}', end='|') - print() -print() - - -def color_print(*args): - args = [str(i) for i in args] - out = '|'.join(args) - line = ';'.join(args) - print(f'\033[{line}m{out}\033[0m') - - -reset_color = '\033[0m' - -# exit(0) - -color_print(94) -color_print(41, 93) -color_print(36, 40) -print() -color_print(48, *rgb(200, 100, 20), 34) -color_print(48, *rgb(255, 161, 72)) -color_print(48, *rgb(255, 161, 72), 38, *rgb(1, 50, 255)) -color_print(48, *rgb(178, 112, 50), 38, *rgb(98, 96, 167)) -print() -color_print(48, *rgb(120, 10, 10), 38, *rgb(50, 100, 110)) - -color_print(34, 40) -color_print(32, 40) -print('trace: ', end='') -color_print(48, *rgb(40, 40, 40)) -print('some trace', reset_color) - -print('fine: ', end='') -color_print(35) -print('some fine', reset_color) - -print('debug: ', end='') -color_print(38, *rgb(133, 138, 149)) -print('some debug', reset_color) - -print('info: ', end='') -color_print(0) -print('some info', reset_color) - -print('warn: ', end='') -# color_print(31, 48, *rgb(56, 28, 0)) -color_print(33) -print('some warn', reset_color) - -print('error: ', end='') -color_print(31) -print('some error', reset_color) - -print('fatal: ', end='') -color_print(33, 41) -print('some fatal', reset_color) diff --git a/Difficult_Rocket/utils/cprint/colors.py b/Difficult_Rocket/utils/cprint/colors.py deleted file mode 100644 index 65a0770..0000000 --- a/Difficult_Rocket/utils/cprint/colors.py +++ /dev/null @@ -1,12 +0,0 @@ -# ------------------------------- -# Difficult Rocket -# Copyright © 2021-2022 by shenjackyuanjie 3695888@qq.com -# All rights reserved -# ------------------------------- -from colorama import Fore, Back, Style - -print(Fore.RED + 'some red text') -print(Back.GREEN + 'and with a green background') -print(Style.DIM + 'and in dim text') -print(Style.RESET_ALL) -print('back to normal now') diff --git a/Difficult_Rocket/utils/cprint/compile.py b/Difficult_Rocket/utils/cprint/compile.py deleted file mode 100644 index 21ba8f8..0000000 --- a/Difficult_Rocket/utils/cprint/compile.py +++ /dev/null @@ -1,39 +0,0 @@ -import os - -# include 目录 -include_paths = ["C:\\Users\\shenjack.SHENJACK-5600X\\AppData\\Local\\Programs\\Python\\Python38\\include\\."] - -# 编译选项 -compile_options = { - "-shared": None, - "-O3": None, - "-Wall": None, - "-Werror": None, - "-o": "./py_cprint.dll" -} - -include_command = "-I " - -# 处理 include 目录命令 -for path in include_paths: - include_command = "{}, {}".format(include_command, path) -else: - if len(include_paths) != 0: - include_command = include_command[:3] + include_command[4:] - -compile_option_command = "" - -# 处理编译选项 -for option, key in compile_options.items(): - if key is None: - compile_option_command = "{} {} ".format(compile_option_command, option) - else: - compile_option_command = "{} {} {}".format(compile_option_command, option, key) - -print(include_command, compile_option_command) - -compile_command = "gcc.exe ./py_cprint.c {}{}".format(include_command, compile_option_command) - -print(compile_command) - -os.system(compile_command) diff --git a/Difficult_Rocket/utils/cprint/cprint.c b/Difficult_Rocket/utils/cprint/cprint.c deleted file mode 100644 index 78c294d..0000000 --- a/Difficult_Rocket/utils/cprint/cprint.c +++ /dev/null @@ -1,30 +0,0 @@ -// -// Created by shenjack on 2022/6/24. -// - -//#define PY_SSIZE_T_CLEAN -#include "Python.h" -#include -#include -#include -#include - - -int CcPrint(PyObject *self, PyObject *args, PyObject *kwargs){ - char *print_str; - char *line_end = NULL; // 准备参数 - static char *kwlist[] = {"some_stuf", "end", NULL}; // 准备参数列表 - if(!PyArg_ParseTupleAndKeywords(args, kwargs, "ss", kwlist, &print_str, &line_end)){ - return 0; - }; - return 1; -}; - -// 如果你非得调用我····· -int main(){ - printf("aaaa"); - if(false){ - CcPrint(PyLong_FromLong(1), PyLong_FromLong(1), PyLong_FromLong(1)); - }; - return 0; -}; \ No newline at end of file diff --git a/Difficult_Rocket/utils/cprint/dll_load.py b/Difficult_Rocket/utils/cprint/dll_load.py deleted file mode 100644 index fe5358e..0000000 --- a/Difficult_Rocket/utils/cprint/dll_load.py +++ /dev/null @@ -1,7 +0,0 @@ -from objprint import objprint - -from ctypes import cdll - -cprint = cdll.LoadLibrary("./cprint.dll") - -# objprint(cprint) diff --git a/Difficult_Rocket/utils/cprint/py_cprint.c b/Difficult_Rocket/utils/cprint/py_cprint.c deleted file mode 100644 index 5f93277..0000000 --- a/Difficult_Rocket/utils/cprint/py_cprint.c +++ /dev/null @@ -1,101 +0,0 @@ -// -// Created by shenjack on 2022/7/6. -// - -#define PY_SSIZE_T_CLEAN -#define Py_size long long int -#include -#include - - - -int *print_PyUcs4(PyObject *pyObject){ - if(PyUnicode_READY(pyObject) == -1){ - PyErr_SetString(PyExc_UnicodeDecodeError, "failed"); - return NULL; - } - #if defined(__linux__) - const char *out_char = PyUnicode_AsUTF8(pyObject); - printf("%s", out_char); - #elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__) || defined(__NT__) - Py_UCS4 *ucs4 = PyUnicode_4BYTE_DATA(pyObject); - printf("%ws", ucs4); // win - #endif - return (int *) 1; -}; - -static PyObject *pycprint_print(PyObject *self, PyObject *args){ - if(!print_PyUcs4(PyTuple_GetItem(args, 0))){ - return NULL; - }; - Py_RETURN_NONE; -}; - -const char *get_char_from_PyUnicode(PyObject *unicodeObject){ - if(!PyUnicode_READY(unicodeObject)){ - return NULL; - }; - const char *char_obj = PyUnicode_AsUTF8(unicodeObject); - if(char_obj == NULL){ - return NULL; - } else { - return char_obj; - }; -}; - - -static PyObject *pycpint_printf(PyObject *self, PyObject *args, PyObject *kwargs){ - printf("args == NULL: %d\n", args == NULL); - printf("kwargs == NULL: %d\n", kwargs == NULL); - - const char *end = "\n"; - const char *sep = " "; - - if (args != NULL){ // 传入了字符串 - Py_ssize_t text_len = PyTuple_Size(args); // 获取字符串的长度 - PyObject *cache_obj; // 创建一个缓存 - - for (Py_ssize_t i = 0; i < text_len; i++){ // for 遍历 - cache_obj = PyTuple_GetItem(args, i); // 获取一个字符串 - if (cache_obj == NULL){ return NULL; }; // 出毛病了就报错 - - if (PyUnicode_Check(cache_obj) == 1) { - print_PyUcs4(cache_obj); - } else if (PyList_Check(cache_obj) == 1) { - - }; - }; - printf("text_len = %lld\n", (Py_size)text_len); - }; - if(kwargs != NULL){ // 传入了 end 或者 sep - Py_ssize_t kwargs_len = PyDict_Size(kwargs); - printf("kwargs_len = %lld\n", (Py_size) kwargs_len);; - if(PyDict_Contains(kwargs, PyUnicode_FromString("end"))){ // 如果包含 end 的参数 - - PyObject *end_unicode = PyDict_GetItemString(kwargs, "end"); // 先获取出来 Pyobj - - end = PyUnicode_AsUTF8(end_unicode); - }; - }; - printf("%s", end); - Py_RETURN_NONE; -}; - -static PyMethodDef PyCprintMethods[] = { - {"print", pycprint_print, METH_VARARGS, "直接使用c的printf输出"}, - {"printf", (PyCFunction)(void(*))pycpint_printf, METH_VARARGS | METH_KEYWORDS, - "传入类似py print然后进行format的print"}, - {NULL, NULL, 0, NULL} -}; - -static struct PyModuleDef pycprintmodule = { - PyModuleDef_HEAD_INIT, - "pycprint", - "直接调用c的printf", - -1, - PyCprintMethods -}; - -PyMODINIT_FUNC PyInit_pycprint(void){ - return PyModule_Create(&pycprintmodule); -}; diff --git a/Difficult_Rocket/utils/cprint/py_cprint.py b/Difficult_Rocket/utils/cprint/py_cprint.py deleted file mode 100644 index 233c098..0000000 --- a/Difficult_Rocket/utils/cprint/py_cprint.py +++ /dev/null @@ -1,16 +0,0 @@ -# ------------------------------- -# Difficult Rocket -# Copyright © 2021-2022 by shenjackyuanjie 3695888@qq.com -# All rights reserved -# ------------------------------- -from build import pycprint - -pycprint.print("来个测试\n") - -pycprint.print("再来个测试\n") - -pycprint.print("abcdefg\n") - -pycprint.printf('aaaa') - -pycprint.printf("啊啊啊abc啊,怎么了") diff --git a/Difficult_Rocket/utils/cprint/pycprint.pyi b/Difficult_Rocket/utils/cprint/pycprint.pyi deleted file mode 100644 index 6300e6f..0000000 --- a/Difficult_Rocket/utils/cprint/pycprint.pyi +++ /dev/null @@ -1,10 +0,0 @@ -# ------------------------------- -# Difficult Rocket -# Copyright © 2021-2022 by shenjackyuanjie 3695888@qq.com -# All rights reserved -# ------------------------------- - -def print(text: str) -> None: ... # 直接调用fprint - - -def printf(text: str) -> None: ... # 测试中 diff --git a/Difficult_Rocket/utils/cprint/setup.py b/Difficult_Rocket/utils/cprint/setup.py deleted file mode 100644 index 38dcfca..0000000 --- a/Difficult_Rocket/utils/cprint/setup.py +++ /dev/null @@ -1,30 +0,0 @@ -from setuptools import setup, Extension -import shutil -import os - -pycprint = Extension('pycprint', - sources=['py_cprint.c']) - -setup(name='PyCprint', - version='0.0.1', - author='shenjack', - author_email='3695888@qq.com', - description='这是一个用于直接调用c的printf的库', - ext_modules=[pycprint]) - - -def dir_not_temp(path: str): - return path.find('temp') and os.path.isdir(os.path.join('build', path)) - - -build_dir = os.listdir('./build') -build_dir = list(filter(dir_not_temp, build_dir)) -# 用列表推导式把 是文件夹 且 名字里没有 temp 的抽出来 -print(build_dir) - -os.chdir('build') -# 把运行路径迁移过去,方便copy - -for build in build_dir: - copy = os.listdir(build) - shutil.copy(os.path.join(build, copy[0]), './') diff --git a/Difficult_Rocket/utils/cprint/test.ps1 b/Difficult_Rocket/utils/cprint/test.ps1 deleted file mode 100644 index 122ab65..0000000 --- a/Difficult_Rocket/utils/cprint/test.ps1 +++ /dev/null @@ -1,15 +0,0 @@ -Write-Output ---------------------开始测试--------------------- - -Write-Output ==========_win-py3.8_========== -python3.8.exe ./py_cprint.py - -Write-Output ==========_win-py3.10_========== -python3.10.exe ./py_cprint.py - -Write-Output ==========_wsl-py3.8_========== -wsl.exe python3 py_cprint.py - -Write-Output ==========_wsl-py3.10_========== -wsl.exe python3.10 ./py_cprint.py - -Write-Output ---------------------结束测试---------------------