GMSPythonCheck.gms : GMSPython에 대한 일관성 검사

설명

이 모델은 GMSPython에서 간단한 검사를 수행합니다.
패키지 버전과 관련하여 무료 슬롯 사이트와 함께 제공되는 배포판
배포된 파일 수와 전체 디스크 크기.
또한 GMSPython을 조립하는 데 사용되는 conda 환경
pip-audit를 사용하여 알려진 취약점을 검사합니다.

기고자: Clemens Westphal, 2020년 4월

카테고리 : 무료 슬롯 사이트 데이터 유틸리티 라이브러리


메인 파일 : GMSPythonCheck.gms 포함: GMSPythonCheck.gms

$title 'GMSPython에 대한 일관성 및 취약점 검사' (GMSPYTHONCHECK,SEQ=140)

$onText
이 모델은 GMSPython에서 간단한 검사를 수행합니다.
패키지 버전과 관련하여 무료 슬롯 사이트와 함께 제공되는 배포판
배포된 파일 수와 전체 디스크 크기.
또한 GMSPython을 조립하는 데 사용되는 conda 환경
pip-audit를 사용하여 알려진 취약점을 검사합니다.

기고자: Clemens Westphal, 2020년 4월
$offText

$dropEnv PYTHONUSERBASE

* 디스크 크기 확인
$onEmbeddedCode 파이썬:
수입 시스템
수입 플랫폼
수입 OS
importlib에서 메타데이터 가져오기
def 계산 크기(경로):
    총계 = 0
    os.walk(path)에 있는 r, d, 파일의 경우:
        d에서 '__pycache__'인 경우:
            d.remove('__pycache__')
        파일의 f에 대해:
            f = os.path.join(r, f)
            그렇지 않은 경우 os.path.islink(f): # os.path.getsize()가 링크 뒤의 파일 크기를 반환하므로 심볼릭 링크를 건너뜁니다.
                전체 += os.path.getsize(f)
    반품 총액
$offEmbeddedCode

$onEmbeddedCode 파이썬:
gmsPyDir = r'%무료 슬롯 사이트sysdir%GMSPython'
오류 = []
os.path.isdir(gmsPyDir)인 경우:
    platform.system() == 'Windows'인 경우:
        예상 크기 = 249000000
    elif platform.system() == '리눅스':
        platform.machine() == 'x86_64'인 경우:
            예상 크기 = 322000000
        그 외:
            예상 크기 = 257000000
    elif platform.system() == '다윈':
        platform.machine() == 'x86_64'인 경우:
            예상 크기 = 331000000
        그 외:
            예상 크기 = 220000000

    SizeLB = 예상 크기*0.8
    SizeUB = 예상 크기*1.2

    파일 = []
    os.walk(gmsPyDir)의 r, d, f에 대해:
        d에서 '__pycache__'인 경우:
            d.remove('__pycache__')
        파일.추가(f)
    files = [f for l in files for f in l]

    크기 = calcSize(gmsPyDir)

    크기 < SizeLB 또는 크기 > SizeUB인 경우:
        error.append("GMSPython의 예상 크기는 " + str(SizeLB) + "와 " + str(SizeUB) + " 사이여야 하지만 " + str(size)를 얻었습니다.
$offEmbeddedCode

* 재배포된 패키지를 확인하세요
$onEmbeddedCode 파이썬:
수입 플랫폼
pyVersionExpected = '3.12.12'
pyVersion = str(sys.version_info.major) + '.' + str(sys.version_info.minor) + '.' + 문자열(sys.version_info.micro)
pyVersion != pyVersionExpected인 경우:
    오류.append(f"예상 Python 버전은 'pyVersionExpected'이지만 'pyVersion'이 발견되었습니다.")

PACKAGE_TO_MODULE_MAP = 
    "python_dateutil": "dateutil",
    "pyyaml": "yaml",
    "psycopg2_binary": "psycopg2",
    "pywin32": "pywintypes",