Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /var/www/web-klick.de/dsh/order_model/.archive/ixml/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : /var/www/web-klick.de/dsh/order_model/.archive/ixml/layer.py

from typing import List, Optional, Union, Literal

from pydantic import BaseModel, Extra, validator

from ordermodel.image_field import ImageField
from ordermodel.title import Title


class Layer(BaseModel):
    """Model to carry layer information.

    Type hint notation by 'pydantic'.
    (see https://pypi.org/project/pydantic/)

    Attributes:
        template_description: iMask template identifier.
            (e.g.) 'ST-TOURS-PRINT/ 7"-GLOBAL--LAYER'
        mask_paritiy:
            (e.g.) 'Wrong Reading', 'Right Reading'
        glass_size: Glass size.
    """
    layer_number: int
    layer_device: str
    layer_name: str

    route_site: Literal['CB', 'MOO', 'IC'] = None  # Todo: (1) Clarify, complete or remove. (2) Multiple route sites possible?
    release_to_wip_site: Literal['CB', 'DR', 'IC'] = None

    product: Optional[str] = None  # e.g. '4EPSM/6"'
    product_type: Optional[str] = None
    glass_size: Optional[str] = None
    quantity: Optional[str] = None
    grade: Optional[str] = None  # e.g. 'JC'
    grade_type: Optional[str] = None
    mask_parity: Literal['Wrong Reading', 'Right Reading'] = None

    price: Union[int, float] = None
    price_code: Optional[str] = None

    customer_information_1: Optional[str] = None
    customer_information_2: Optional[str] = None

    template_description: Optional[str] = None

    image_fields: List[ImageField] = []  # Todo: Rather define a default IF?
    titles: List[Title] = []

    @validator('image_fields')
    def check_image_fields(cls, image_fields):
        # check if the max. number if image fields is not exceeded
        if len(image_fields) > 8:
            raise ValueError('Maximum number of allowed image fields is 8.')

        # check if all 'if_numbers' are unique
        if_numbers = set(image_field.if_number for image_field in image_fields)
        if len(if_numbers) != len(image_fields):
            raise ValueError('Non unique image field number.')

        return image_fields

    brand: Optional[str]

    revision: Optional[int] = None
    serial_number: Optional[str] = None

    diversion_plan: Optional[str] = None
    po_line_number: Optional[str] = None
    customer_tracking: Optional[str] = None
    secured: Optional[bool] = None
    maskview: Optional[str] = None
    ship_method: Optional[str] = None
    ship_method_site: Optional[str] = None
    field_tone: Optional[str] = None
    pell_required: Optional[bool] = None
    cd_required: Optional[bool] = None
    multi_layer: Optional[str] = None
    jobdeck_template: Optional[str] = None
    scheduled_eta: Optional[str] = None  # Todo: Add datetime as an option.

    cat_alt_cd_tolerance: Optional[str] = None
    cat_alt_cd_tolerance2: Optional[str] = None
    cat_alt_cd_uniformity: Optional[str] = None
    cat_alt_cd_uniformity2: Optional[str] = None
    cat_alt_reg_tolerance: Optional[str] = None
    cat_cd_tolerance: Optional[str] = None
    cat_cd_uniformity: Optional[str] = None
    cat_defect_size: Optional[str] = None
    cat_reg_tolerance: Optional[str] = None

    # centrality
    centrality_yn: Optional[bool] = None
    centrality_type: Optional[str] = None
    centrality_x_tol: Optional[str] = None
    centrality_y_tol: Optional[str] = None
    centrality_req_by: Optional[str] = None

    # na-centrality
    na_centrality_reqd_by: Optional[str] = None
    na_centrality_type: Optional[str] = None
    na_centrality_yn: Optional[bool] = None
    na_centrality_x_tol: Optional[bool] = None
    na_centrality_y_tol: Optional[bool] = None
    na_layer_spec_rotate: Optional[str] = None
    na_rotation_tol: Optional[str] = None

    check_reticle: Optional[str] = None
    chrome_side_description: Optional[str] = None
    compact_label: Optional[str] = None
    country_of_manufacture: Optional[str] = None
    current_arrival_schedule: Optional[str] = None
    cust_jobview_release: Optional[str] = None
    customer_arrival_date: Optional[str] = None
    customer_code: Optional[str] = None
    customer_eccn: Optional[str] = None
    customer_hold: Optional[str] = None
    defect_density: Optional[str] = None
    delivery_date: Optional[str] = None
    direct_copy: Optional[str] = None
    drop_equal_contract_date: Optional[str] = None
    etch_type: Optional[str] = None
    etch_type_req_by: Optional[str] = None
    foundry_jobview_release: Optional[str] = None
    frame_die_received: Optional[str] = None
    glass_side_description: Optional[str] = None
    glass_type: Optional[str] = None
    imaging_required_by: Optional[str] = None
    layer_rd_designation: Optional[str] = None
    layer_rd_funding_project: Optional[str] = None
    layer_spec_comments: Optional[str] = None
    layer_spec_rotate: Optional[str] = None
    layer_status: Optional[str] = None
    line_ship_to_contact: Optional[str] = None
    logic_dram_other: Optional[str] = None
    mask_coating: Optional[str] = None
    mask_feature_type: Optional[str] = None
    maskshop_comments: Optional[str] = None
    material_wavelength: Optional[int] = None  # Todo: Check if float required + add regex?
    no_commercial_charge_value: Union[int, float] = None
    num_mlr_fields: Optional[int] = None  # Todo: Check requirements.
    number_of_images: Optional[int] = None  # Todo: Check requirements.
    opc_feature_type: Optional[str] = None
    pack_slip_comments: Optional[str] = None
    plots: Literal['Required', 'Approval'] = None
    prime_die_received: Optional[str] = None
    process_flow: Optional[str] = None
    request_equal_mfg_date: Optional[bool] = None
    requested_due_date: Optional[str] = None
    rotation_tol: Optional[str] = None
    send_to_site: Optional[str] = None
    ship_in_sequence: Optional[str] = None
    ship_set: Optional[str] = None
    ship_to_location: Optional[str] = None
    shipping_instructions: Optional[str] = None
    site_application: Optional[str] = None
    stepper_types: List[str] = None
    technology_node: Optional[str] = None
    time_data_received: Optional[str] = None
    tp_instructions: Optional[str] = None
    tpi_holds_master: Optional[str] = None

    class Config:
        extra = Extra.forbid

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net