@@ -68,7 +68,7 @@ from abx_pkg import Binary, BinProvider, BrewProvider, EnvProvider
68
68
# you can also define binaries as classes, making them usable for type checking
69
69
class CurlBinary (Binary ):
70
70
name: str = ' curl'
71
- binproviders: List [InstanceOf[BinProvider]] = [BrewProvider(), EnvProvider()]
71
+ binproviders: list [InstanceOf[BinProvider]] = [BrewProvider(), EnvProvider()]
72
72
73
73
curl = CurlBinary().install()
74
74
assert isinstance (curl, CurlBinary) # CurlBinary is a unique type you can use in annotations now
@@ -175,7 +175,7 @@ It can define one or more `BinProvider`s that it supports, along with overrides
175
175
- ` load() ` , ` install() ` , ` load_or_install() ` ` -> ` ` Binary `
176
176
- ` binprovider: InstanceOf[BinProvider] `
177
177
- ` abspath: Path `
178
- - ` abspaths: List [Path] `
178
+ - ` abspaths: list [Path] `
179
179
- ` version: SemVer `
180
180
- ` sha256: str `
181
181
@@ -185,7 +185,7 @@ from abx_pkg import BinProvider, Binary, BinProviderName, BinName, ProviderLooku
185
185
class CustomBrewProvider (BrewProvider ):
186
186
name: str = ' custom_brew'
187
187
188
- def get_macos_packages (self , bin_name : str , ** context ) -> List [str ]:
188
+ def get_macos_packages (self , bin_name : str , ** context ) -> list [str ]:
189
189
extra_packages_lookup_table = json.load(Path(' macos_packages.json' ))
190
190
return extra_packages_lookup_table.get(platform.machine(), [bin_name])
191
191
@@ -195,11 +195,11 @@ class YtdlpBinary(Binary):
195
195
name: BinName = ' ytdlp'
196
196
description: str = ' YT-DLP (Replacement for YouTube-DL) Media Downloader'
197
197
198
- binproviders_supported: List [BinProvider] = [EnvProvider(), PipProvider(), AptProvider(), CustomBrewProvider()]
198
+ binproviders_supported: list [BinProvider] = [EnvProvider(), PipProvider(), AptProvider(), CustomBrewProvider()]
199
199
200
200
# customize installed package names for specific package managers
201
- provider_overrides: Dict [BinProviderName, ProviderLookupDict] = {
202
- ' pip' : {' packages' : [' yt-dlp[default,curl-cffi]' ]}, # can use literal values (packages -> List [str], version -> SemVer, abspath -> Path, install -> str log)
201
+ provider_overrides: dict [BinProviderName, ProviderLookupDict] = {
202
+ ' pip' : {' packages' : [' yt-dlp[default,curl-cffi]' ]}, # can use literal values (packages -> list [str], version -> SemVer, abspath -> Path, install -> str log)
203
203
' apt' : {' packages' : lambda : [' yt-dlp' , ' ffmpeg' ]}, # also accepts any pure Callable that returns a list of packages
204
204
' brew' : {' packages' : ' self.get_macos_packages' }, # also accepts string reference to function on self (where self is the BinProvider)
205
205
}
@@ -221,9 +221,9 @@ from abx_pkg import BinProvider, Binary, BinProviderName, BinName, ProviderLooku
221
221
class DockerBinary (Binary ):
222
222
name: BinName = ' docker'
223
223
224
- binproviders_supported: List [BinProvider] = [EnvProvider(), AptProvider()]
224
+ binproviders_supported: list [BinProvider] = [EnvProvider(), AptProvider()]
225
225
226
- provider_overrides: Dict [BinProviderName, ProviderLookupDict] = {
226
+ provider_overrides: dict [BinProviderName, ProviderLookupDict] = {
227
227
' env' : {
228
228
# example: prefer podman if installed (falling back to docker)
229
229
' abspath' : lambda : os.which(' podman' ) or os.which(' docker' ) or os.which(' docker-ce' ),
@@ -313,7 +313,7 @@ from django_pydantic_field import SchemaField
313
313
class InstalledBinary(models.Model):
314
314
name = models.CharField(max_length = 63 )
315
315
binary: Binary = SchemaField()
316
- binproviders: List [InstanceOf[BinProvider]] = SchemaField(default = [])
316
+ binproviders: list [InstanceOf[BinProvider]] = SchemaField(default = [])
317
317
version: SemVer = SchemaField(default = (0 ,0 ,1 ))
318
318
```
319
319
0 commit comments