4
4
import os
5
5
import site
6
6
from datetime import datetime
7
- from typing import List
7
+ from typing import Dict , List
8
8
9
9
from setuptools import setup
10
10
from pathlib import Path
11
11
import subprocess
12
12
import re
13
13
14
+ STD_PACKAGES = set (('array' , 'math' , 'os' , 'random' , 'struct' , 'sys' , 'ssl' , 'time' ))
15
+
14
16
stub_root = Path ("circuitpython-stubs" )
15
17
stubs = [p .relative_to (stub_root ).as_posix () for p in stub_root .glob ("*.pyi" )]
16
18
28
30
pieces .pop ()
29
31
version = "-" .join (pieces )
30
32
31
- def build_data_files_list () -> List [tuple ]:
32
- result = []
33
- for package in os .listdir ("circuitpython-stubs" ):
34
- result .append ((site .getsitepackages ()[0 ] + "/" + package + "/" ,
35
- ["circuitpython-stubs/{}/__init__.pyi" .format (package )]))
33
+ packages = set (os .listdir ("circuitpython-stubs" )) - STD_PACKAGES
34
+ package_dir = dict ((f"{ package } -stubs" , f"circuitpython-stubs/{ package } " )
35
+ for package in packages )
36
+ print ("package dir is" , package_dir )
37
+
38
+ def build_package_data () -> Dict [str , List [str ]]:
39
+ result = {}
40
+ for package in packages :
41
+ result [f"{ package } -stubs" ] = ["*.pyi" , "*/*.pyi" ]
36
42
return result
37
43
44
+ package_data = build_package_data ()
38
45
setup (
39
46
name = "circuitpython-stubs" ,
40
47
description = "PEP 561 type stubs for CircuitPython" ,
@@ -44,6 +51,9 @@ def build_data_files_list() -> List[tuple]:
44
51
author_email = "circuitpython@adafruit.com" ,
45
52
version = version ,
46
53
license = "MIT" ,
47
- data_files = build_data_files_list (),
54
+ packages = list (package_data .keys ()),
55
+ package_data = package_data ,
56
+ package_dir = package_dir ,
48
57
setup_requires = ["setuptools>=38.6.0" ],
58
+ zip_safe = False ,
49
59
)
0 commit comments