AI-TensorFlow-Libtensorflow
view release on metacpan or search on metacpan
maint/inc/Pod/Elemental/Transformer/TF_Sig.pm view on Meta::CPAN
package Pod::Elemental::Transformer::TF_Sig;
# ABSTRACT: TensorFlow signatures
use Moose;
extends 'Pod::Elemental::Transformer::List';
use feature qw{ postderef };
use lib 'lib';
use AI::TensorFlow::Libtensorflow::Lib;
use AI::TensorFlow::Libtensorflow::Lib::Types qw(-all);
use Types::Standard qw(Maybe Str Int ArrayRef CodeRef ScalarRef Ref);
use Types::Encodings qw(Bytes);
use Type::Registry qw(t);
use namespace::autoclean;
sub __is_xformable {
my ($self, $para) = @_;
return unless $para->isa('Pod::Elemental::Element::Pod5::Region')
and $para->format_name =~ /^(?:param|returns|signature)$/;
confess("list regions must be pod (=begin :" . $self->format_name . ")")
unless $para->is_pod;
return 1;
}
my %region_types = (
'signature' => 'Signature',
'param' => 'Parameters',
'returns' => 'Returns',
);
around _expand_list_paras => sub {
my ($orig, $self, $para) = @_;
my $is_list_type = $para->format_name =~ /^(?:param|returns)$/;
if( $is_list_type ) {
die "Need description list for @{[ $para->as_pod_string ]}"
unless $para->children->[0]->content =~ /^=/;
}
my $prefix;
if( $para->isa('Pod::Elemental::Element::Pod5::Region')
&& exists $region_types{$para->format_name}
) {
$prefix = Pod::Elemental::Element::Pod5::Ordinary->new({
content => "B<@{[ $region_types{$para->format_name} ]}>",
});
}
my @replacements;
if( $is_list_type ) {
@replacements = $orig->($self, $para);
} else {
undef $prefix;
push @replacements, Pod::Elemental::Element::Pod5::Ordinary
->new( { content => do { my $v = <<EOF; chomp $v; $v } });
=over 2
C<<<
@{[ join("\n", map { $_->content } $para->children->@*) ]}
>>>
=back
EOF
}
unshift @replacements, $prefix if defined $prefix;
@replacements;
};
sub __paras_for_num_marker { die "only support definition lists" }
( run in 1.106 second using v1.01-cache-2.11-cpan-39bf76dae61 )