Uname : Linux premium36.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
Soft : LiteSpeed
Ip : 198.54.115.237
Port : 443
~
/
opt
/
hc_python
/
lib64
/
python3.12
/
site-packages
/
psutil
/
tests
/
__pycache__
[ HOME ]
Exec
Submit
test_unicode.cpython-312.pyc
� x�/i�) � � � d Z ddlZddlZddlZddlmZ ddlZddlmZ ddlmZ ddlm Z ddlm Z ddlmZ dd lmZ dd l mZ ddl mZ ddl mZ dd l mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl mZ ddl m Z ddl m!Z! ddl m"Z" d� Z# G d � d!e� Z$ejJ jM d"�#� ejJ jO ed$�%� G d&� d'e$� � � Z(ejJ jO ed(�%� G d)� d*e(� � Z) G d+� d,e$� Z*y)-aY Notes about unicode handling in psutil ======================================. Starting from version 5.3.0 psutil adds unicode support, see: https://github.com/giampaolo/psutil/issues/1040 The notes below apply to *any* API returning a string such as process exe(), cwd() or username(): * all strings are encoded by using the OS filesystem encoding (sys.getfilesystemencoding()) which varies depending on the platform (e.g. "UTF-8" on macOS, "mbcs" on Win) * no API call is supposed to crash with UnicodeDecodeError * instead, in case of badly encoded data returned by the OS, the following error handlers are used to replace the corrupted characters in the string: * sys.getfilesystemencodeerrors() or "surrogatescape" on POSIX and "replace" on Windows. For a detailed explanation of how psutil handles unicode see #1040. Tests ===== List of APIs returning or dealing with a string: ('not tested' means they are not tested to deal with non-ASCII strings): * Process.cmdline() * Process.cwd() * Process.environ() * Process.exe() * Process.memory_maps() * Process.name() * Process.net_connections('unix') * Process.open_files() * Process.username() (not tested) * disk_io_counters() (not tested) * disk_partitions() (not tested) * disk_usage(str) * net_connections('unix') * net_if_addrs() (not tested) * net_if_stats() (not tested) * net_io_counters() (not tested) * sensors_fans() (not tested) * sensors_temperatures() (not tested) * users() (not tested) * WindowsService.binpath() (not tested) * WindowsService.description() (not tested) * WindowsService.display_name() (not tested) * WindowsService.name() (not tested) * WindowsService.status() (not tested) * WindowsService.username() (not tested) In here we create a unicode path with a funky non-ASCII name and (where possible) make psutil return it back (e.g. on name(), exe(), open_files(), etc.) and make sure that: * psutil never crashes with UnicodeDecodeError * the returned path matches � N)�closing)�BSD��MACOS)�NETBSD)�OPENBSD)�POSIX)�WINDOWS)�ASCII_FS)� CI_TESTING)�HAS_ENVIRON)�HAS_MEMORY_MAPS)�HAS_NET_CONNECTIONS_UNIX)�INVALID_UNICODE_SUFFIX)�PYPY)� TESTFN_PREFIX)�UNICODE_SUFFIX)�PsutilTestCase)�bind_unix_socket)�chdir)�copyload_shared_lib)� create_py_exe)� get_testfn)�pytest)� safe_mkdir)�safe_rmpath)�skip_on_access_denied)� spawn_subproc)� terminatec �| � d}t | �� } t |� t |� t |g�� }t j ||dz � t |dz � |�t |� t |� y# t t f$ r Y |�t |� t |� yw xY w# |�t |� t |� w xY w)z`Return True if both the fs and the subprocess module can deal with a unicode file name. N��suffix)�cmdz-2TF) r r r r �shutil�copyfiler �UnicodeEncodeError�OSError)r"