@@ -60,61 +60,86 @@ def run(self) -> None:
6060 if  self .all :
6161 # If building for all platforms 
6262 platform_map  =  {
63-  "darwin" : {
64-  "zip_name" : "mac" ,
65-  "wheels" : ["macosx_10_13_x86_64.whl" , "macosx_11_0_universal2.whl" ],
66-  },
67-  "linux" : {"zip_name" : "linux" , "wheels" : ["manylinux1_x86_64.whl" ]},
68-  "win32" : {
69-  "zip_name" : "win32_x64" ,
70-  "wheels" : ["win32.whl" , "win_amd64.whl" ],
71-  },
63+  "darwin" : [
64+  {
65+  "zip_name" : "mac" ,
66+  "wheels" : [
67+  "macosx_10_13_x86_64.whl" ,
68+  "macosx_11_0_universal2.whl" ,
69+  ],
70+  },
71+  {
72+  "zip_name" : "mac-arm64" ,
73+  "wheels" : [
74+  "macosx_11_0_arm64.whl" ,
75+  ],
76+  },
77+  ],
78+  "linux" : [
79+  {"zip_name" : "linux" , "wheels" : ["manylinux1_x86_64.whl" ]},
80+  {
81+  "zip_name" : "linux-arm64" ,
82+  "wheels" : ["manylinux_2_17_aarch64.manylinux2014_aarch64.whl" ],
83+  },
84+  ],
85+  "win32" : [
86+  {
87+  "zip_name" : "win32_x64" ,
88+  "wheels" : ["win32.whl" , "win_amd64.whl" ],
89+  }
90+  ],
7291 }
7392 platforms  =  [* platform_map .values ()]
7493 else :
7594 # If building for only current platform 
7695 platform_map  =  {
77-  "darwin" : {
78-  "zip_name" : "mac" ,
79-  "wheels" : ["macosx_10_13_x86_64.whl" ],
80-  },
81-  "linux" : {"zip_name" : "linux" , "wheels" : ["manylinux1_x86_64.whl" ]},
82-  "win32" : {
83-  "zip_name" : "win32_x64" ,
84-  "wheels" : ["win_amd64.whl" ],
85-  },
96+  "darwin" : [
97+  {
98+  "zip_name" : "mac" ,
99+  "wheels" : ["macosx_10_13_x86_64.whl" ],
100+  },
101+  ],
102+  "linux" : [{"zip_name" : "linux" , "wheels" : ["manylinux1_x86_64.whl" ]}],
103+  "win32" : [
104+  {
105+  "zip_name" : "win32_x64" ,
106+  "wheels" : ["win_amd64.whl" ],
107+  }
108+  ],
86109 }
87110 platforms  =  [platform_map [sys .platform ]]
88111 for  platform  in  platforms :
89-  zip_file  =  f"playwright-{ driver_version }  -{ platform ['zip_name' ]}  .zip" 
90-  if  not  os .path .exists ("driver/"  +  zip_file ):
91-  url  =  f"https://playwright.azureedge.net/builds/driver/next/{ zip_file }  " 
92-  print (f"Fetching { url }  " )
93-  # Don't replace this with urllib - Python won't have certificates to do SSL on all platforms. 
94-  subprocess .check_call (["curl" , url , "-o" , "driver/"  +  zip_file ])
112+  for  arch  in  platform :
113+  zip_file  =  f"playwright-{ driver_version }  -{ arch ['zip_name' ]}  .zip" 
114+  if  not  os .path .exists ("driver/"  +  zip_file ):
115+  url  =  f"https://playwright.azureedge.net/builds/driver/next/{ zip_file }  " 
116+  print (f"Fetching { url }  " )
117+  # Don't replace this with urllib - Python won't have certificates to do SSL on all platforms. 
118+  subprocess .check_call (["curl" , url , "-o" , "driver/"  +  zip_file ])
95119 base_wheel_location  =  glob .glob (os .path .join (self .dist_dir , "*.whl" ))[0 ]
96120 without_platform  =  base_wheel_location [:- 7 ]
97121
98122 for  platform  in  platforms :
99-  zip_file  =  f"driver/playwright-{ driver_version }  -{ platform ['zip_name' ]}  .zip" 
100-  with  zipfile .ZipFile (zip_file , "r" ) as  zip :
101-  extractall (zip , f"driver/{ platform ['zip_name' ]}  " )
102-  if  platform_map [sys .platform ] in  platforms :
123+  for  arch  in  platform :
124+  zip_file  =  f"driver/playwright-{ driver_version }  -{ arch ['zip_name' ]}  .zip" 
103125 with  zipfile .ZipFile (zip_file , "r" ) as  zip :
104-  extractall (zip , "playwright/driver" )
105-  for  wheel  in  platform ["wheels" ]:
106-  wheel_location  =  without_platform  +  wheel 
107-  shutil .copy (base_wheel_location , wheel_location )
108-  with  zipfile .ZipFile (wheel_location , "a" ) as  zip :
109-  driver_root  =  os .path .abspath (f"driver/{ platform ['zip_name' ]}  " )
110-  for  dir_path , _ , files  in  os .walk (driver_root ):
111-  for  file  in  files :
112-  from_path  =  os .path .join (dir_path , file )
113-  to_path  =  os .path .relpath (from_path , driver_root )
114-  zip .write (from_path , f"playwright/driver/{ to_path }  " )
115-  zip .writestr (
116-  "playwright/driver/README.md" , f"{ wheel }   driver package" 
117-  )
126+  extractall (zip , f"driver/{ arch ['zip_name' ]}  " )
127+  if  platform_map [sys .platform ][0 ] in  platform :
128+  with  zipfile .ZipFile (zip_file , "r" ) as  zip :
129+  extractall (zip , "playwright/driver" )
130+  for  wheel  in  arch ["wheels" ]:
131+  wheel_location  =  without_platform  +  wheel 
132+  shutil .copy (base_wheel_location , wheel_location )
133+  with  zipfile .ZipFile (wheel_location , "a" ) as  zip :
134+  driver_root  =  os .path .abspath (f"driver/{ arch ['zip_name' ]}  " )
135+  for  dir_path , _ , files  in  os .walk (driver_root ):
136+  for  file  in  files :
137+  from_path  =  os .path .join (dir_path , file )
138+  to_path  =  os .path .relpath (from_path , driver_root )
139+  zip .write (from_path , f"playwright/driver/{ to_path }  " )
140+  zip .writestr (
141+  "playwright/driver/README.md" , f"{ wheel }   driver package" 
142+  )
118143
119144 os .remove (base_wheel_location )
120145 if  InWheel :
0 commit comments