<s> from __future__ import absolute_import <EOL> import csv <EOL> import copy <EOL> import warnings <EOL> from collections import defaultdict <EOL> from . common import * <EOL> from . kipart import * <EOL> def xilinx6v_reader ( txt_file ) : <EOL> '''<STR_LIT>''' <EOL> pin_data = defaultdict ( lambda : defaultdict ( lambda : defaultdict ( list ) ) ) <EOL> part_num = txt_file . readline ( ) . split ( ) [ <NUM_LIT:1> ] <EOL> _ = txt_file . readline ( ) <EOL> pin_list = txt_file . readlines ( ) <EOL> for index , line in enumerate ( pin_list , <NUM_LIT:4> ) : <EOL> pin = copy . copy ( DEFAULT_PIN ) <EOL> pin . index = index <EOL> fields = line . split ( ) <EOL> fields = [ fix_pin_data ( d , part_num ) for d in fields ] <EOL> if len ( fields ) == <NUM_LIT:0> : <EOL> break <EOL> pin . num = fields [ <NUM_LIT:0> ] <EOL> if fields [ <NUM_LIT:1> ] . upper ( ) == '<STR_LIT>' : <EOL> pin . unit = '<STR_LIT>' <EOL> pin . name = '<STR_LIT>' <EOL> else : <EOL> pin . unit = fields [ <NUM_LIT:1> ] <EOL> pin . name = fields [ <NUM_LIT:2> ] <EOL> DEFAULT_PIN_TYPE = '<STR_LIT:input>' <EOL> PIN_TYPE_PREFIXES = [ <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT:input>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( r'<STR_LIT>' , '<STR_LIT>' ) , <EOL> ] <EOL> for prefix , typ in PIN_TYPE_PREFIXES : <EOL> if re . match ( prefix , pin . name , re . IGNORECASE ) : <EOL> pin . type = typ <EOL> break <EOL> else : <EOL> issue ( '<STR_LIT>' . format ( <EOL> pin . name , part_num [ : <NUM_LIT:4> ] , DEFAULT_PIN_TYPE ) ) <EOL> pin . type = DEFAULT_PIN_TYPE <EOL> pin_data [ pin . unit ] [ pin . side ] [ pin . name ] . append ( pin ) <EOL> yield part_num , pin_data </s>
