1# -*- coding: utf-8 -*-
2from __future__ import unicode_literals
3from .. import Provider as AddressProvider
4
5
6class Provider(AddressProvider):
7    city_formats = ("{{city_name}}", )
8    building_number_formats = ("%號", "%#號", "%##號", )
9    postcode_formats = ("%####", "%##", )
10    section_formats = ("", "", "", "", "%段", )
11    street_address_formats = (
12        "{{street_name}}{{street_name_suffix}}{{section_number}}{{building_number}}", )
13    city_formats = ("{{city_name}}{{city_name_suffix}}", )
14    address_formats = (
15        "{{postcode}} {{city}}{{street_address}}{{secondary_address}}", )
16    secondary_address_formats = ('#樓', '之#')
17
18    street_names = ("中正", "中山", "民生", "中華", "和平",
19                    "中興", "仁愛", "復興", "民族", "民權",
20                    "忠孝", "信義", "成功", "新興", "新生",
21                    "動物園", "淡水", "新生", "文化", "大同",
22                    "三民", "新生", "光復", "自強", "光明",
23                    "公園", "文山", "松山", "新店", "建國",
24                    "西門", "古亭", "迴龍", "中山", "新莊",
25                    "蘆洲", "永安", "四維", "大橋頭", "府中",
26                    "福德", "大同", "文昌", "土城", "博愛",
27                    "象山", "光華", "太平", "水源", "莒光",
28                    "廣慈", "大仁", "中央", "大智", "林森",
29                    "長春", "南", "劍南", "大坪", "國凱"
30                    "八德", "天母", "東興", "勝利", "頂福州",
31                    "東湖", "大勇", "民有", "自由", "長安",
32                    "明德", "大安", "龍山寺", "德", "忠義",
33                    "中和", "自由", "新埔", "永和", "延平",
34                    "正義", "五福", "華興", "育英", "平和",
35                    "福安", "小碧潭", "永寧", "育英", "興",
36                    "自立", "民享", "昆陽", "民治", "關渡",
37                    "學府", "奇岩", "紅樹林", "和街", "民富",
38                    "關渡", "北投", "石牌", "芝山", "景美",
39                    "士林", "劍潭", "雙連", "新北投", "萬隆")
40
41    street_suffixes = ("路", "街", "巷")
42
43    cities = ("基隆", "台北", "新北", "桃園", "新竹",
44              "新竹", "苗栗", "台中", "彰化", "南投",
45              "雲林", "嘉義", "桃園", "台南", "高雄",
46              "屏東", "台東", "花蓮", "宜蘭", "澎湖",
47              "金門", "連江", "太保", "朴子", "馬公",
48              "頭份", "臺東", "斗六", "員林", "竹北",
49              "平鎮", "臺中", "八德", "板橋", "大里",
50              "鳳山", "豐原", "蘆洲", "蘆竹", "三重",
51              "樹林", "太平", "新營", "新營", "汐止",
52              "楊梅", "永和", "永康", "中和", "中壢",
53              "阿里山", "白沙", "褒忠", "北斗", "北竿",
54              "北港", "卑南", "草屯", "梅山", "牡丹",
55              "橫山", "光復", "關山", "古坑", "竹田")
56
57    city_suffixes = ("市", "縣")
58
59    # from
60    countries = ("阿爾巴尼亞", "剛果共和國", "阿爾及利亞", "丹麥",
61                 "安哥拉", "多明尼加", "安圭拉", "多米尼克",
62                 "阿根廷", "厄瓜多爾", "亞美尼亞", "埃及",
63                 "阿路巴", "薩爾瓦多", "澳大利亞", "厄利垂亞",
64                 "奧地利", "愛沙尼亞", "亞塞拜然", "衣索匹亞",
65                 "巴哈馬", "斐濟", "巴林", "芬蘭", "孟加拉", "法屬玻里尼西亞",
66                 "法國", "巴貝多", "加彭", "白俄羅斯", "喬治亞",
67                 "比利時", "德國", "貝里斯", "迦納", "貝南", "直布羅陀",
68                 "百慕達", "英國", "不丹", "希臘", "玻利維亞", "格瑞那達",
69                 "波希尼亞及赫塞哥維那", "瓜地馬拉", "波札那", "幾內亞",
70                 "巴西", "蓋亞那", "汶萊", "海地", "保加利亞", "宏都拉斯",
71                 "布吉納法索", "香港", "蒲隆地", "匈牙利", "柬埔寨", "冰島",
72                 "喀麥隆", "印度", "加拿大", "印尼", "維德角島", "依朗",
73                 "開曼群島", "伊拉克", "中非共和國", "愛爾蘭", "查德", "以色列",
74                 "智利", "義大利", "中國大陸", "牙買加", "哥倫比亞", "日本",
75                 "剛果", "約旦", "科克群島", "肯亞", "哥斯大黎加", "韓國",
76                 "象牙海岸", "科威特", "克羅埃西亞", "寮國", "塞浦路斯", "拉脫維亞",
77                 "捷克", "賴索托", "盧森堡", "聖露西亞", "澳門", "聖文森及格瑞那丁",
78                 "馬其頓", "聖多美及普林西比", "馬達加斯加", "沙烏地阿拉伯",
79                 "馬拉威", "塞內加爾", "馬來西亞", "塞席爾", "馬爾地夫", "獅子山",
80                 "馬利", "新加坡", "馬爾他", "斯洛伐克", "模里西斯", "斯洛維尼亞",
81                 "茅利塔尼亞", "索羅門群島", "墨西哥", "索馬利亞",
82                 "摩爾多瓦", "南非", "蒙古", "西班牙", "摩洛哥", "斯里蘭卡",
83                 "緬甸", "蘇丹", "納米比亞", "蘇利南", "諾魯", "史瓦濟蘭",
84                 "尼泊爾", "瑞典", "荷蘭", "瑞士", "新喀里多尼亞", "敘利亞",
85                 "紐西蘭", "坦尚尼亞", "尼日", "泰國", "奈及利亞", "多哥",
86                 "挪威", "千里達及托貝哥", "阿曼", "突尼西亞", "巴基斯坦", "土耳其",
87                 "巴拿馬", "烏干達", "巴布亞紐幾內亞", "烏克蘭",
88                 "巴拉圭", "阿拉伯聯合大公國", "秘魯", "美國", "菲律賓", "烏拉圭",
89                 "波蘭", "委內瑞拉", "葡萄牙", "越南", "卡達", "西薩摩亞",
90                 "羅馬尼亞", "葉門", "俄羅斯", "尚比亞", "盧安達", "辛巴威",
91                 "聖克里斯多福及尼維斯")
92
93    def secondary_address(self):
94        return self.numerify(
95            self.random_element(
96                self.secondary_address_formats))
97
98    def building_number(self):
99        return self.numerify(self.random_element(self.building_number_formats))
100
101    def street_name(self):
102        return self.random_element(self.street_names)
103
104    def street_name_suffix(self):
105        return self.random_element(self.street_suffixes)
106
107    def city_name(self):
108        return self.random_element(self.cities)
109
110    def city_name_suffix(self):
111        return self.random_element(self.city_suffixes)
112
113    def section_number(self):
114        return self.numerify(self.random_element(self.section_formats))
115