Skip to content

Commit 6c06e59

Browse files
authored
PR: Add Static Typing Annotations (#158)
* Fix broken doctest. Signed-off-by: Thomas Mansencal <[email protected]> * Add static typing annotations to `tasks.py` file. Signed-off-by: Thomas Mansencal <[email protected]> * Add static typing annotations to `opencolorio_config_aces.utilities` sub-package. Signed-off-by: Thomas Mansencal <[email protected]> * Add static typing annotations to `opencolorio_config_aces.clf` sub-package. Signed-off-by: Thomas Mansencal <[email protected]> * Add static typing annotations to `opencolorio_config_aces.config` sub-package. Signed-off-by: Thomas Mansencal <[email protected]> * Ensure that *pyright* does not scan the `aces-system` sub-module and `.venv` directory. Signed-off-by: Thomas Mansencal <[email protected]> --------- Signed-off-by: Thomas Mansencal <[email protected]>
1 parent a592531 commit 6c06e59

File tree

26 files changed

+1006
-709
lines changed

26 files changed

+1006
-709
lines changed

opencolorio_config_aces/clf/discover/classify.py

Lines changed: 47 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
"TRANSFORM_FILTERERS_DEFAULT_CLF",
5555
"PATTERNS_DESCRIPTION_CLF",
5656
"ROOT_TRANSFORMS_CLF",
57+
"VALUE_DEFAULT_UNDEFINED",
5758
"clf_transform_relative_path",
5859
"CLFTransformID",
5960
"CLFTransform",
@@ -140,6 +141,11 @@
140141
the local 'transforms/clf' directory.
141142
"""
142143

144+
VALUE_DEFAULT_UNDEFINED: str = "undefined"
145+
"""
146+
Default undefined value, i.e., *undefined*.
147+
"""
148+
143149

144150
def clf_transform_relative_path(
145151
path: str, root_directory: str = ROOT_TRANSFORMS_CLF
@@ -194,23 +200,23 @@ class CLFTransformID:
194200
__repr__
195201
"""
196202

197-
def __init__(self, clf_transform_id: str) -> None:
203+
def __init__(self, clf_transform_id: str = VALUE_DEFAULT_UNDEFINED) -> None:
198204
self._clf_transform_id: str = clf_transform_id
199205

200-
self._urn: str | None = None
201-
self._type: str | None = None
202-
self._namespace: str | None = None
203-
self._name: str | None = None
204-
self._major_version: str | None = None
205-
self._minor_version: str | None = None
206-
self._patch_version: str | None = None
207-
self._source: str | None = None
208-
self._target: str | None = None
206+
self._urn: str = VALUE_DEFAULT_UNDEFINED
207+
self._type: str = VALUE_DEFAULT_UNDEFINED
208+
self._namespace: str = VALUE_DEFAULT_UNDEFINED
209+
self._name: str = VALUE_DEFAULT_UNDEFINED
210+
self._major_version: str = VALUE_DEFAULT_UNDEFINED
211+
self._minor_version: str = VALUE_DEFAULT_UNDEFINED
212+
self._patch_version: str = VALUE_DEFAULT_UNDEFINED
213+
self._source: str = VALUE_DEFAULT_UNDEFINED
214+
self._target: str = VALUE_DEFAULT_UNDEFINED
209215

210216
self._parse()
211217

212218
@property
213-
def clf_transform_id(self) -> str | None:
219+
def clf_transform_id(self) -> str:
214220
"""
215221
Getter property for the *CLFtransformID*, e.g.,
216222
*urn:aswf:ocio:transformId:v1.0:ACES.OCIO.AP0_to_AP1-Gamma2pnt2.c1.v1*.
@@ -228,7 +234,7 @@ def clf_transform_id(self) -> str | None:
228234
return self._clf_transform_id
229235

230236
@property
231-
def urn(self) -> str | None:
237+
def urn(self) -> str:
232238
"""
233239
Getter property for the *CLFtransformID* Uniform Resource Name (*URN*),
234240
e.g., *urn:aswf:ocio:transformId:v1.0*.
@@ -246,7 +252,7 @@ def urn(self) -> str | None:
246252
return self._urn
247253

248254
@property
249-
def type(self) -> str | None:
255+
def type(self) -> str:
250256
"""
251257
Getter property for the *CLFtransformID* type, e.g., *ACES*.
252258
@@ -263,7 +269,7 @@ def type(self) -> str | None:
263269
return self._type
264270

265271
@property
266-
def namespace(self) -> str | None:
272+
def namespace(self) -> str:
267273
"""
268274
Getter property for the *CLFtransformID* namespace, e.g., *OCIO*.
269275
@@ -280,7 +286,7 @@ def namespace(self) -> str | None:
280286
return self._namespace
281287

282288
@property
283-
def name(self) -> str | None:
289+
def name(self) -> str:
284290
"""
285291
Getter property for the *CLFtransformID* name, e.g.,
286292
*AP0_to_AP1-Gamma2pnt2*.
@@ -298,7 +304,7 @@ def name(self) -> str | None:
298304
return self._name
299305

300306
@property
301-
def major_version(self) -> str | None:
307+
def major_version(self) -> str:
302308
"""
303309
Getter property for the *CLFtransformID* major version number, e.g., *c1*.
304310
@@ -315,7 +321,7 @@ def major_version(self) -> str | None:
315321
return self._major_version
316322

317323
@property
318-
def minor_version(self) -> str | None:
324+
def minor_version(self) -> str:
319325
"""
320326
Getter property for the *CLFtransformID* minor version number, e.g., *v1*.
321327
@@ -332,7 +338,7 @@ def minor_version(self) -> str | None:
332338
return self._minor_version
333339

334340
@property
335-
def patch_version(self) -> str | None:
341+
def patch_version(self) -> str:
336342
"""
337343
Getter property for the *CLFtransformID* patch version number.
338344
@@ -349,7 +355,7 @@ def patch_version(self) -> str | None:
349355
return self._patch_version
350356

351357
@property
352-
def source(self) -> str | None:
358+
def source(self) -> str:
353359
"""
354360
Getter property for the *CLFtransformID* source colourspace.
355361
@@ -366,7 +372,7 @@ def source(self) -> str | None:
366372
return self._source
367373

368374
@property
369-
def target(self) -> str | None:
375+
def target(self) -> str:
370376
"""
371377
Getter property for the *CLFtransformID* target colourspace.
372378
@@ -409,7 +415,7 @@ def __repr__(self) -> str:
409415
def _parse(self) -> None:
410416
"""Parse the *CLFtransformID*."""
411417

412-
if self._clf_transform_id is None:
418+
if self._clf_transform_id == VALUE_DEFAULT_UNDEFINED:
413419
return
414420

415421
clf_transform_id = self._clf_transform_id
@@ -489,30 +495,30 @@ class CLFTransform:
489495
def __init__(
490496
self,
491497
path: str,
492-
family: str | None = None,
493-
genus: str | None = None,
498+
family: str = VALUE_DEFAULT_UNDEFINED,
499+
genus: str = VALUE_DEFAULT_UNDEFINED,
494500
siblings: Sequence | None = None,
495501
) -> None:
496502
siblings = optional(siblings, [])
497503

498504
self._path: str = os.path.abspath(os.path.normpath(path))
499505

500-
self._code: str | None = None
501-
self._clf_transform_id: CLFTransformID | None = None
502-
self._user_name: str | None = None
503-
self._description: str | None = ""
504-
self._input_descriptor: str | None = ""
505-
self._output_descriptor: str | None = ""
506+
self._code: str = VALUE_DEFAULT_UNDEFINED
507+
self._clf_transform_id: CLFTransformID = CLFTransformID()
508+
self._user_name: str = VALUE_DEFAULT_UNDEFINED
509+
self._description: str = VALUE_DEFAULT_UNDEFINED
510+
self._input_descriptor: str = VALUE_DEFAULT_UNDEFINED
511+
self._output_descriptor: str = VALUE_DEFAULT_UNDEFINED
506512
self._information: dict = {}
507513

508-
self._family: str | None = family
509-
self._genus: str | None = genus
514+
self._family: str = family
515+
self._genus: str = genus
510516
self._siblings: Sequence | None = siblings
511517

512518
self._parse()
513519

514520
@property
515-
def path(self) -> str | None:
521+
def path(self) -> str:
516522
"""
517523
Getter property for the *CLF* transform path.
518524
@@ -529,7 +535,7 @@ def path(self) -> str | None:
529535
return self._path
530536

531537
@property
532-
def code(self) -> str | None:
538+
def code(self) -> str:
533539
"""
534540
Getter property for the *CLF* transform code, i.e., the *CLF* transform
535541
file content.
@@ -549,7 +555,7 @@ def code(self) -> str | None:
549555
return self._code
550556

551557
@property
552-
def clf_transform_id(self) -> CLFTransformID | None:
558+
def clf_transform_id(self) -> CLFTransformID:
553559
"""
554560
Getter property for the *CLF* transform *CLFtransformID*.
555561
@@ -566,7 +572,7 @@ def clf_transform_id(self) -> CLFTransformID | None:
566572
return self._clf_transform_id
567573

568574
@property
569-
def user_name(self) -> str | None:
575+
def user_name(self) -> str:
570576
"""
571577
Getter property for the *CLF* transform user name.
572578
@@ -583,7 +589,7 @@ def user_name(self) -> str | None:
583589
return self._user_name
584590

585591
@property
586-
def description(self) -> str | None:
592+
def description(self) -> str:
587593
"""
588594
Getter property for the *CLF* transform description extracted from
589595
parsing the file content header.
@@ -601,7 +607,7 @@ def description(self) -> str | None:
601607
return self._description
602608

603609
@property
604-
def input_descriptor(self) -> str | None:
610+
def input_descriptor(self) -> str:
605611
"""
606612
Getter property for the *CLF* transform input descriptor extracted from
607613
parsing the file content header.
@@ -619,7 +625,7 @@ def input_descriptor(self) -> str | None:
619625
return self._input_descriptor
620626

621627
@property
622-
def output_descriptor(self) -> str | None:
628+
def output_descriptor(self) -> str:
623629
"""
624630
Getter property for the *CLF* transform output descriptor extracted
625631
from parsing the file content header.
@@ -655,7 +661,7 @@ def information(self) -> dict:
655661
return self._information
656662

657663
@property
658-
def family(self) -> str | None:
664+
def family(self) -> str:
659665
"""
660666
Getter property for the *CLF* transform family, e.g., *aces*, a value in
661667
:attr:`opencolorio_config_aces.clf.reference.\
@@ -674,7 +680,7 @@ def family(self) -> str | None:
674680
return self._family
675681

676682
@property
677-
def genus(self) -> str | None:
683+
def genus(self) -> str:
678684
"""
679685
Getter property for the *CLF* transform genus, e.g., *undefined*.
680686
@@ -824,7 +830,7 @@ def _parse(self) -> None:
824830
)
825831
if aces_transform_id is not None:
826832
self._information["ACEStransformID"] = ACESTransformID(
827-
aces_transform_id.text
833+
aces_transform_id.text # pyright: ignore
828834
)
829835

830836
builtin_transform = next(

opencolorio_config_aces/clf/transforms/apple/generate.py

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,12 @@
1010
- :func:`opencolorio_config_aces.clf.generate_clf_transforms_apple`
1111
"""
1212

13+
from __future__ import annotations
14+
1315
from pathlib import Path
1416

17+
import PyOpenColorIO as ocio
18+
1519
from opencolorio_config_aces.clf.transforms import (
1620
clf_basename,
1721
format_clf_transform_id,
@@ -32,29 +36,36 @@
3236
"generate_clf_transforms_apple",
3337
]
3438

35-
FAMILY = "Apple"
39+
FAMILY: str = "Apple"
3640
"""
3741
*CLF* transforms family.
3842
"""
3943

40-
GENUS = "Input"
44+
GENUS: str = "Input"
4145
"""
4246
*CLF* transforms genus.
4347
"""
4448

45-
VERSION = "1.0"
49+
VERSION: str = "1.0"
4650
"""
4751
*CLF* transforms version.
4852
"""
4953

5054

51-
def generate_clf_transforms_apple(output_directory):
55+
def generate_clf_transforms_apple(
56+
output_directory: Path,
57+
) -> dict[Path, ocio.GroupTransform]:
5258
"""
53-
Make the CLF file for Apple Log and for Apple Log curve CLF.
59+
Generate the *CLF* transforms for *Apple Log* and for *Apple Log* curve.
60+
61+
Parameters
62+
----------
63+
output_directory
64+
Directory to write the *CLF* transform(s) to.
5465
5566
Returns
5667
-------
57-
dict
68+
:class:`dict`
5869
Dictionary of *CLF* transforms and *OpenColorIO* `GroupTransform`
5970
instances.
6071

0 commit comments

Comments
 (0)