forked from Quazer/anglerfish
/
check_encoding.py
42 lines (34 loc) · 1.57 KB
/
check_encoding.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Debug and Log Encodings and Check for root/administrator,return Bool."""
import logging as log
import os
import sys
from getpass import getuser
from platform import platform, python_version
__MSG = f"""
Python { python_version() } on { platform() }.
Default Encoding: { sys.getdefaultencoding() }.
STDIN Encoding: { getattr(sys.stdin, "encoding", "???") }.
STDERR Encoding: { getattr(sys.stderr, "encoding", "???") }.
STDOUT Encoding: { getattr(sys.stdout, "encoding", "???") }.
I/O File Systems Encoding: { sys.getfilesystemencoding() }.
PYTHONIOENCODING Encoding: { os.environ.get("PYTHONIOENCODING", "???")}.
Default File Systems Encoding Errors: { sys.getfilesystemencodeerrors() }.
PYTHONLEGACYWINDOWSFSENCODING Encoding: {
os.environ.get("PYTHONLEGACYWINDOWSFSENCODING", "???") }.
PYTHONLEGACYWINDOWSSTDIO Encoding: {
os.environ.get("PYTHONLEGACYWINDOWSSTDIO", "???") }."""
def check_encoding(check_root: bool=True) -> bool:
"""Debug and Log Encodings and Check for root/administrator,return Bool."""
log.debug(__MSG)
os.environ["PYTHONIOENCODING"] = "utf-8"
if sys.platform.startswith(("linux", "darwin")) and check_root: # root
if not os.geteuid():
log.warning("Runing as root is not Recommended !.")
return False
elif sys.platform.startswith("win") and check_root: # administrator
if getuser().lower().startswith("admin"):
log.warning("Runing as Administrator is not Recommended !.")
return False
return True