shell bypass 403
o
ab�� � @ s� d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dl Z d dl
Z
d dlZd dlZd dl
Z
d dlZd dlZd dlmZmZ d dlmZmZmZ d dlmZmZ d dlmZmZ d dlZd dlmZmZm Z m!Z! dZ"ddddddd�Z#eed d
gej$d dde%e#dd
dd�d�Z&e&�'e#� G dd� d�Z(G dd� dej)e(�Z*G dd� dej)e(�Z+G dd� dej)e(�Z,G dd� dej)�Z-e.dkr�e�/� dS dS )� N)�
no_tracing�verbose)�forget�make_legacy_pyc�unload)�create_empty_file�temp_dir)�make_script�make_zip_script)� _run_code�_run_module_code�
run_module�run_patha� # Check basic code execution
result = ['Top level assignment']
def f():
result.append('Lower level reference')
f()
del f
# Check the sys module
import sys
run_argv0 = sys.argv[0]
run_name_in_sys_modules = __name__ in sys.modules
module_in_sys_modules = (run_name_in_sys_modules and
globals() is sys.modules[__name__].__dict__)
# Check nested operation
import runpy
nested = runpy._run_module_code('x=1\n', mod_name='<run>')
)�__name__�__file__�
__cached__�__package__�__doc__�__spec__zTop level assignmentzLower level referenceF� z<run>)�xr �
__loader__)�sys�runpy�result� run_argv0�run_name_in_sys_modules�module_in_sys_modules�nestedc @ s$ e Zd Zg d�Zdd� Zdd� ZdS )�CodeExecutionMixin)�name�parent�origin�cached�has_location�submodule_search_locationsc C s* |� � }|� � }t|�D ]"}|�d�r.|�d�r.||vr!|�|� ||d vr.|d �|� q|�d�}|�d�}|du rC| �|� n/|jdurT| �t|j�t|j�� | j D ]}d| }|t
||�f}|t
||�f}| �||� qW| �t|�t|�� |D ]}||| f}||| f}| �||� q~dS )zbCheck two namespaces match.
Ignores any unspecified interpreter created names
�__r r Nz __spec__.)�copy�list�
startswith�endswith�popZassertIsNone�loader�assertEqual�type�CHECKED_SPEC_ATTRIBUTES�getattr�set) �self� result_ns�expected_ns�kZresult_specZ
expected_spec�attr�actualZexpected� r8 �8/usr/local/python-3.10/lib/python3.10/test/test_runpy.py�assertNamespaceMatchesP s8
�
�
�z)CodeExecutionMixin.assertNamespaceMatchesc
C s� t � }|�� }|d }tjd }tj�||�}|d�}| �||� | �tjd |� | �tj�||�|� d|i} ||d<