@@ -49,14 +49,6 @@ using TrackVectorProxy =
49
49
using SOWithMetadata = SerializableObjectWithMetadata;
50
50
51
51
namespace {
52
- const std::string string_or_none_converter (py::object& thing) {
53
- if (thing.is (py::none ())) {
54
- return std::string ();
55
- }
56
- else {
57
- return py::str (thing);
58
- }
59
- }
60
52
61
53
template <typename T, typename U>
62
54
bool children_if (T* t, py::object descended_from_type, optional<TimeRange> const & search_range, bool shallow_search, std::vector<SerializableObject*>& l) {
@@ -210,12 +202,12 @@ A marker indicates a marked range of time on an item in a timeline, usually with
210
202
The marked range may have a zero duration. The marked range is in the owning item's time coordinate system.
211
203
)docstring" )
212
204
.def (py::init ([](
213
- py::object name,
205
+ optional<std::string> name,
214
206
TimeRange marked_range,
215
207
std::string const & color,
216
208
py::object metadata) {
217
209
return new Marker (
218
- string_or_none_converter ( name),
210
+ name. value_or ( " " ),
219
211
marked_range,
220
212
color,
221
213
py_to_any_dictionary (metadata));
@@ -551,12 +543,12 @@ Should be subclassed (for example by :class:`.Track` and :class:`.Stack`), not u
551
543
.value (" never" , Track::NeighborGapPolicy::never);
552
544
553
545
track_class
554
- .def (py::init ([](py::object name, py::object children,
546
+ .def (py::init ([](optional<std::string> name, py::object children,
555
547
optional<TimeRange> const & source_range,
556
548
std::string const & kind, py::object metadata) {
557
549
auto composable_children = py_to_vector<Composable*>(children);
558
550
Track* t = new Track (
559
- string_or_none_converter ( name),
551
+ name. value_or ( " " ),
560
552
source_range,
561
553
kind,
562
554
py_to_any_dictionary (metadata)
@@ -585,15 +577,15 @@ Should be subclassed (for example by :class:`.Track` and :class:`.Stack`), not u
585
577
586
578
587
579
py::class_<Stack, Composition, managing_ptr<Stack>>(m, " Stack" , py::dynamic_attr ())
588
- .def (py::init ([](py::object name,
580
+ .def (py::init ([](optional<std::string> name,
589
581
py::object children,
590
582
optional<TimeRange> const & source_range,
591
583
py::object markers,
592
584
py::object effects,
593
585
py::object metadata) {
594
586
auto composable_children = py_to_vector<Composable*>(children);
595
587
Stack* s = new Stack (
596
- string_or_none_converter ( name),
588
+ name. value_or ( " " ),
597
589
source_range,
598
590
py_to_any_dictionary (metadata),
599
591
py_to_vector<Effect*>(effects),
@@ -742,12 +734,12 @@ Represents media for which a concrete reference is missing.
742
734
Note that a :class:`~MissingReference` may have useful metadata, even if the location of the media is not known.
743
735
)docstring" )
744
736
.def (py::init ([](
745
- py::object name,
737
+ optional<std::string> name,
746
738
optional<TimeRange> available_range,
747
739
py::object metadata,
748
740
optional<Imath::Box2d> const & available_image_bounds) {
749
741
return new MissingReference (
750
- string_or_none_converter ( name),
742
+ name. value_or ( " " ),
751
743
available_range,
752
744
py_to_any_dictionary (metadata),
753
745
available_image_bounds);
0 commit comments