►
From YouTube: Weekly Sync 2020-04-14
Description
Meeting Minutes: https://docs.google.com/document/d/16u9Tev3O0CcUDe2nfikHmrO3Xnd4ASJ45myFgQLpvzM/edit#heading=h.nf93uxx03qh6
B
A
A
So
this
will
just
start
going
through
things
or
I
wanted
to
tackle
this
first.
This
has
shame
on
snow
he's,
not
all
right.
Well,
I!
Guess
we
won't
cycle
this
first,
oh
well!
Okay,
just
quick,
tup
date
for
you
guys,
so
I
was
hoping
to
get
this
done
for
the
meeting
today,
but
didn't
happen.
Oh
well,
it'll
get
done
after
the
meeting,
but
I'll
show
you
right
here.
So
basically,
I
was
working.
We've
we've
been
talking
like
we've
talked
about
how
we
wanted
to
get
the
HTTP
API
into
the
QuickStart
documentation.
A
A
When
you
go
and
it's
like
it
talks
about
how
to
do
it
from
Python,
then
talks
about
how
to
do
it
from
async
Python.
Then
it
will
basically
jump
to
something
like
this,
where
we
start
the
HP
server
and
I
added
a
new
syntax,
so
we
can
sort
of
just
like
pre
configure
the
model.
I,
don't
know
if
it
guys
have
played
with
the
HTTP
server,
but
the
idea
would
be
it
provides
you
all
of
the
I
mean
it.
A
You
can
do
anything
from
the
HTTP
server
that
you
can
do
from
the
command
line
or
from
the
python
api
and
that's
what's
gonna.
Let
us
write
the
web
UI
and
so
basically
I
just
added
the
same
same
issue
in
tax.
Basically,
the
syntax
that
you
have
for
sources
is
now
also
the
syntax
yet
for
models,
because
with
HTTP
API
you
could
have
multiple
models
active
at
the
same
time.
So
you
basically
you
load
the
models.
You
tag
them
with
their
their
label.
A
So,
like
my
model,
equals
the
SLR
model,
and
then
you
say
you
know
all
their
options
and
then
the
HTTP
server
will
have
that
model
running
on
whatever.
Given
you
are
like
it'll,
be
on
my
model.
So,
for
example,
you
know
it'll
be
in
the
quick
start
in
a
minute,
but
if
you
were
to
say
slash,
if
you
were
to
send
this
data
to
model
slash,
my
model
slash
predict
slash
zero.
Then
you
would
end
up
with
this
as
the
response,
which
would
have
the
prediction
in
it.
A
A
Other
news
I
have
any
other
news
for
you
guys,
let's
see
I,
don't
think
so.
I
think
that's
about
it.
On
my
end,
we're
still
doing
that
the
GSoC
we
have
to
go
through
and
evaluate
everybody's
proposals
and
then
we're
we've
got.
You
know
we're
all
putting
our
mentor
comments
on
the
finalized
proposals
and
then
we
have
to
make
a
decision
eventually,
but
we
don't
make
that
decision
yet.
So
we
haven't
made
that
decision
yet
and
obviously
you
won't
find
out
until
the
fourth
anyways.
So
that's
all
the
news
on
that
front.
A
A
A
A
D
A
A
So
did
it
alright,
so
entry
points
we'll
just
take
it
from
the
top,
so
the
entry
point
system
is
this
system
that
Python
has
is
as
a
language
or
well
yeah
as
a
language
that
allows
us
to
sort
of
like
its.
It
allows
us
to
give
a
path
to
some
Python
object
within
a
Python
file
within
our
package
and
then
label
it
as
some
label,
and
that
way
we
can
load
it.
A
Other
Python
programs
can
can
use
this
interface
provided
by
the
Python
package,
packaging
library,
the
package
resources
library
to
discover
what
Python
classes
or
functions
or
objects
have
been
registered
with
that
entry
point.
So
the
nice
thing
about
this
is
what
it
lets
us
do
is.
Is
we
can
we?
It
basically
facilitates
this
plug-in
system
that
we
have
so
by
registering
a
class
or
a
function
with
the
entry
point.
So
the
way
that
we
do,
that
is
we
say,
entry
points,
for
example,
console
scripts
is,
is
a
set
of
tools,
specific
things.
A
A
set
of
tools
is
the
package
that
actually
is
in
charge
of
installing
Python
packages
and
setup
tools
says:
okay,
if
you
see
any,
if
you
see
anything
in
this
array
in
console
scripts,
then
I'm
going
to
create
a
file
within
the
path
that
calls
this
function,
it
loads
this
function
and
it
calls
it
and
obviously
the
function
is.
Is
this
main
method
within
the
CLI
class,
with
India
from
LCLs
CLI?
And
then
the
colon
says
the
colon
is
the
separator
between?
A
A
Basically,
we
say:
okay,
whenever
you
want
to
load
a
source,
we
go
and
say:
okay,
look
through
all
of
the
entry
points
registered
under
the
DFO,
from
l,
dot,
source
entry
point
or
all
of
the
I
guess
labels
they
they're
just
called
the
syntax
where
this
stuff
is
weird.
When
you
look
it
up
it's.
This
is
called
a
entry
point,
I
believe
so.
Each
entry
point
under
this
DFO
from
l,
dot,
source
label,
I,
guess
I
guess
label
is
going
to
become
an
overloaded
term
real
quick.
A
That,
if
util
entry
point,
we
pass
it
to
this
function
rate
here.
A
A
I'll
try
to
hide
it
here.
Alright,
here
it
is
yes,
this
is
the
main
documentation
for
this
thing,
oh
wow,
let
me
but
dogs,
look
all
weird!
Ok,
yield
entry
point
names
from
group
matching
name,
oh
well,
look
at
that!
You
can
do
filtering.
Ok,
I,
just
learned
something
new.
That
would
be
very
helpful
because
we
have
this
whole
thing
that
does
filter
in
here.
A
It
creates
this
any
file
and
that's
why,
if
you
modify
the
entry
points
within
the
setup
here,
why
you
have
to
reinstall
the
package
because
it's
regenerating
this
any
file,
and
so,
unless
you
reinstall
the
package,
this
any
file
doesn't
get
read
and
this
function,
this
Aitor
entry
points
function,
is
just
going
through
and
reading
the
ami
files.
So
it's
not
reading
the
set
up
top
you
wise.
A
So
you
have
to
reinstall
the
package
when
you
modify
the
entry
points,
because
it's
regenerating
the
any
file
which
is
what's
actually
getting
read
all
right
and
as
you
can
see,
this
is
just
a
mapping
of
you
know
the
label
to
where
we
can
find
to
that
thing
now
this.
This
is
all
well
and
good
right,
but
this
doesn't
tell
the
actual
objects
themselves
what
they
should
be
called
right,
because
this
is
just
in
this
set
up
top
here.
A
Why
and
now,
when
we're
doing,
testing
and
other
things
like
when
these
things,
so
this
works
well,
if
we're
going
to
load
it
by
looking
in
like
by
calling
this
function
right.
So,
if
we're,
if
we
specify
CSV
source
on
the
command,
then
that's
all
fine
and
good,
because
when
we
load
it
with
it
our
entry
points,
we
know
that
it
was
CSV
source.
Now
the
thing
is
and
we
can
set
the
entry
point
label
equals.
A
So
here
we
say:
okay,
when
we
load
the
thing
the
label
equals
whatever
it
was
right,
CSV
source
now
this
is
all
well
and
good,
except
for,
if
we're
not
loading
this
thing
via
the
command
line
like
what,
if
this
thing
is
being
loaded
via
some
test
case
right
well,
in
that
case,
we
need
to
have
this
entry
point
label
already
set,
which
is
why
we
have
the
base
entry
point
and
entry
point
decorators,
and
so
you
guys
have
probably
seen
these.
So
what
they
do
is
basically
they
say.
A
Point
name
is
the
next
argument
here
or
the
next
series
of
arguments.
If
you
wanted
to,
and
so
this
says
that
DFM
l
dot
entry
point
is
going
to
be
referenced
as
entry
point
right.
So
with
that
what
this
means
is
that
when
you're
typing
a
command-
and
actually
this
is
actually
a
great
example
of
that,
so
you
may
have
noticed
that
when
you're
typing
a
command
on
the
command
line
right
and
you
have
like
a
model
command
or
you're
better,
you
have
a
source
command
right.
A
So
you
may
have
seen
we've
seen
this
syntax,
where
you
say
sources
equal
and
you
give
it
some.
Some
some
label
here
equals
the
source
type
right
and
then
you
say,
source
my
source
file,
name,
training,
dot,
CSV!
Well,
you
don't
have
to
say
my
source,
if
you
just
say,
source
file,
name,
it's
going
to
infer
that
you
are
talking
about
like
the
only
source
there
right
and
well.
A
And
then
we're
gonna
move
on
soon,
because
this
is
getting
a
little
long,
but
it
is
important
because
so
much
of
this
project
has
to
do
with
configuration
to
make
all
of
the
plugins
work
together.
Let's
see
yeah
so
here
you
see
DFO
from
l,
dot,
source
and
then
source
right.
So
if
you
took
off
this
my
source,
it
would
still
work
because,
as
sake
amma
seen
with
the
code
that
that
does
the
configuration
it
basically
does,
it
does
two
checks.
It
says:
okay,
do
I,
see
source
my
source
file,
name.
A
Ok,
if
I
do
see
that
I'm
gonna
use
that
as
the
file
name
for
my
source.
If
I
don't
see
that
do
I
see
source
file.
Name.
Ok,
if
I
see
that
then
I'm
gonna
use
whatever
that
is
as
the
file
name
for
my
my
source
right
because
sometimes
like
when
you're.
So
you
can
specify
multiple
sources
right
to
training
commands
and
actually
like
to
the
machine
learning
base
commands.
But
sometimes
you
won't
like
a
lot
of
the
time.
A
A
But
operation
implementations
are
weird
or
like
the
deification
entry
point
is
weird,
because
we
have
to
make
it
sort
of
easy
to
use.
We
used
to
have
this
thing
where
it
used
to
be
that
you
had
to
register
the
operation
implementation
separate
from
the
operations.
Now
you
don't
have
to
do
that
anymore.
A
Now
you
just
put
everything
under
DF
imelda
operation,
and
if
it
happens
to
be
an
operation
implementation
rather
than
just
an
operation,
then
it
basically
does
the
Association
and
maps
both
of
them,
depending
on
what
you're
trying
to
load,
if
you're,
trying
to
load
it
through
the
through
the
operation.
If
you're
calling
operation,
dot,
load,
it'll
load,
just
the
operation
or
if
you're,
calling
operation
implementation,
dot
load,
it
will
load
the
operation
implementation
and
because
of
that
overloaded,
behavior,
that's
why
we
ran
into
this
situation
where
we
have
to.
A
Docks
plugins-
and
this
is
what
I
was
saying
again
like
if
you're
loading
these
things,
we
have
the
package
it
or
entry
points.
Usually
you
know
what
they
are,
but
if
it's
for
testing
you
don't
I
guess
in
this
case
we
could
have
assigned
it,
but
it's
better
that
we
keep
it
here,
because
if
we
need
it
within
just
the
Python
environment,
where
we
didn't
load
it
via
the
editor
entry
points
like
a
lot
of
the
test,
cases
will
break.
A
A
Well,
that's
weird
I'm
not
seeing
associate,
let's
see
or
whoa.
Oh
it's
associated
our
case
yeah.
Here
it
is
okay.
So
what
the
reason
why
it's
the
right
net
errors,
because
it's
trying
to
figure
out
what
is
the
entry
point
name,
because
it's
generating
these
labels
that
we
can
link
across
the
documentation?
This
is
because
you
can't
link
to
a
specific
header
on
a
page
without
doing
one
of
these
labels,
and
so
the
label
has
to
be
specific
enough.
So
we
need
to
make
sure
that
we're
saying
it's
a
plug-in.
A
They
are:
where
is
it
lines
of
code?
Two
common
ratio,
DF
of
or
plug-in
operation
DFL
feature
get
lines
of
code,
two
comments
right.
So
that's
a
really
long
label
and
the
reason
why
we
have
does
so,
let's
see
was
because
we
needed
to
do
docs
usage
IO.
So
when
we
added
this
the
other
day,
we
found
out
that
well,
we
really
need
to
be
able
to
link
specifically
to
this
model
plug-in
right.
So
now
the
result
of
this
is,
you
can
say,
ref
reference,
specifically
this
section
within
that
file.
A
So
you
can
say:
I
want
a
link
to
plug-in
model,
dff,
MLS
LR
and
when
you're
on
the
doc
site
and
you're
going
through
this
tutorial-
and
you
say:
oh
we're
using
the
simple
linear
regression
model.
Well,
what
does
that
mean?
Well,
this
is
what
it
means
and
here's
the
docs
for
it
right:
okay-
and
that
was
a
very
long-winded
explanation,
but
hopefully
complete
about
what
our
entry
points
and
what
is
all
of
that
stuff.
Is
there
any
more
questions
on
that?
So
I
know
I,
probably
missed
something.
C
A
No
problem,
yeah
I,
thinks
I,
hope,
I
hope
is
I,
mean
I,
think
it
was
pretty
complete,
but
I.
Definitely
there's
there's
lots
of
things
there.
The
entry
point,
the
utili
entry
point
file
can
sort
of
clear
up
some
of
those
stuff,
but
for
this
issue
specifically
ashame
I
would
say:
I.
Just
so.
I
just
pulled
master
and
I
ran,
I
pulled
master
and
I
ran
the
doc
tests
and
it
looks
like
it
worked.
Fine
and
I
did
I.
Did
the
fresh
container
install
thing?
A
E
A
A
A
Looks
like
your
test
got
at
it,
that's
for
sure,
so
nice
and
your
test
pass.
So
that's
great
sweet,
sweet!
This
looks
great
yeah
and
it
looks
like
it's
all.
Working,
okay,
so
well.
Good
news
is
all
as
well
I
guess
you
do
need
to
add
to
the
change
log
to
make
this.
Oh
yeah.
You
need
to
do
these
guys
and
then
you
need
to
add
to
the
change
log
and
then
I
think
this
is
good
to
go
so
I.
A
A
I
have
a
feeling
that,
if
you
do,
even
if
you
just
did
this
in
the
existing
product
create
a
fresh
container,
but
even
if
you
just
did
this
in
the
existing
one,
I
have
a
feeling
that
it
would,
it
would
clear
itself
up.
My
guess
is
something
got
installed,
not
in
development
mode,
and
sometimes
that
happens.
I,
don't
know
why.
But
things
are
weird.
Pip
is
weird
but
yeah,
okay,
yeah
and
let
us
know
how
that
goes
so,
like.
B
A
A
D
A
So
yeah,
so
this
is
a
good
question.
Okay,
so
we
have
a
couple
ways
we
can
do
this
and
I
was
thinking
about
this.
Some
more
and
I
was
thinking,
let's
maybe
just
not
mess
with
that
at
first
I.
Think
what
we
want
to
do
for
now
is
kick
off
a
data
flow,
because
then
we
can
make
the
behavior
completely
customizable
right,
so
I
think
that
we
probably
want
to.
We
want
to
figure
out
like
what
is
the,
and
maybe
it's
just
like
the
whole
web
hook.
A
A
Yeah
yeah
exactly
so.
This
is
yeah.
This
is
what
I'm
thinking
is
so
so
my
original
the
original
plan
with
this
was
sort
of
like
you
would
you
would
dump
it
on
your
server
and
then
you
you
would
start
the
web
hook
on
your
server
and
then
anytime.
It
got
a
request.
It
would
like
pull
down
the
new
changes
to
the
git
repo
that
you
were
currently
in,
but
that
doesn't
really
make
any
sense.
Actually
so
because,
like
in
this,
the
the
more
common
use
case
here
is
probably
going
to
be.
A
If
the
git
repo
has
a
docker
file,
we
built
a
container
and
then
we
redeploy
the
container,
and
this
is
all
stuff-
that's
going
to
be
like
just
operations
in
a
data
flow
right.
So
if
we
just
give
the
web
hook
the
ability
to
run
a
data
flow
whenever
it
receives
the
honestly
wait
now
the
more
I
think
about
this
I'm,
not
even
sure
we
just
need
this,
because
we
already
have
the
HTTP
service
and
if
you
just
registered
a
path
on
the
HTTP
service,
you
could
just
register
a
data
flow
to
that
path.
A
D
A
Exactly
like
because
the
point
of
this
was
well,
we
need
this
deploy
service
so
that
when
it
hits
the
like,
you
can
set
this
deploy
service
up
and
and
then
it
will.
You
know
it
will
receive
it
on
able
to
receive
it
on
some
path,
this
Web
hook,
and
then
it
will
do
something
and
then
I
just
realized
or
just
reinventing
the
HTTP
service.
So.
A
A
A
A
Okay
and
let
me
just
sort
of
pull
this
up
for
a
second,
so
just
to
be
clear.
What
we're
talking
about
here
is
like
this
is
I
think
this
is
the
only
example
at
the
moment,
but
in
this
example,
oh
okay,
here
we
go,
this
is
gonna
be
this
is
this
is
this
is
this
is
what
the
deal
is?
Okay,
so
right
now,
right
now,
when
we
okay.
A
A
The
input
requires
that
it
be
in
the
same
format
as
run
data
flow
where
you're
saying:
okay,
what's
what's
the
value
and
then
what's
the
definition
and
you
have
to
do
like
you
know,
you
have
to
put
it
under
the
context
and
everything
so
I'm
now
thinking
that
our
first
step
here
really
is
to
to
modify
the
HTTP
API
to
say
to
have
like
a
couple
ways
that
it
can
deal
with
with
the
inputs
right,
you
could
say:
okay,
the
first
way
you
can
deal
with
the
input.
Is
this
way
right?
A
I,
don't
know
we're
gonna
call
this,
but
we
make
a
name
for
it.
So
it's
just.
Let's
write
this
down,
so
modify
new
plan
need
to
modify
the
HTTP
API
so
that
we
can.
We
have
multiple
ways
of
dealing
with
the
input
so
number
one
I
can't
change
it,
okay,
whatever
number
one
or
it
doesn't
really
matter,
so
we
need
a
name
for
the
existing
okay
and-
and
this
is
going
to
be
some
command
line
four
or
this
is
going
to
be
an
option.
A
D
A
So
you
get
the
data
from
the
coast
post
request
right,
but
we
might
so
we
want
to.
We
want
to
so
okay.
So
the
reason
why
we
have
two
different
ways
here
is
because
this
so
for
the
web
hook
all
is
well.
If
this,
this
all
works,
fine,
okay,
so
for
the
way
that
it
works
right
now
we
can
specify
okay
I.
Have
this
this
I
wonder
there
should
be
an
example
at
the
bottom.
Yes,
okay,
there's
an
example.
A
If
we
just
took
the
input
body
as
like,
if
we
post
it
in
secure
package
or
something
then
we
would
have
to
like,
we
would
only
be
able
to
do
one
thing
with
that
and
that's
that's
why
it
works.
The
way
it
does
is
just
a
pass
through,
because
this
was
sort
of
like
the
easiest.
The
easiest
way
to
get
there
to
replicate
the
functionality.
A
The
most
transparent
way
to
write-
and
so
this
is
yeah,
so
this
is
the
existing
way,
but
we
need
a
new
way
right
and
the
new
way
could
be
I,
see
two
two
paths
for
this
right
and
and
we'll.
We
really
only
need
to
concern
ourselves
with
one
of
them.
At
the
moment
we
have
I
think
we
should
be
able
to
take
the
we
should
have.
A
We
should
have
three
input
modes
right
and
you'll
use
and
you'll
switch
the
input
mode,
the
option
to
channel
from
config
called
input
mode
or
something
and
the
input
mode
it'll.
Just
you'll
say,
like
you
know
this
one.
If
we
call
this
one
default
right,
then
in
this
file
it
would
be
like
default.
Calling
the
next
line
would
be
for
input
mode
calling
default,
and
in
that
case
it
would
operate
as
it
does
right
now.
Now
we
need
a
new
input
mode.
That's
like.
A
We
okay,
so
we
need
two
more
one
is
basically
we're.
Gonna
use
a
data
flow
to
decide
to
transform
the
input
into
whatever
it
should
be
right.
You
could
specify
a
data
flow
and
we
would
let's
not
worry
about
this
one
for
now,
but
just
in
the
future,
you
could
give
a
data
flow
as
the
data
flow
to
process
the
input
and
output
it
into
the
format
that
we
have
currently
as
the
default
format
right.
A
So,
if
I
see
some
sort
of
you
know
arbitrary
request
body,
it's
an
array
of
two
values:
right:
okay,
well,
I'm,
creating
this
data
flow,
that's
basically
going
to
export
like
the
the
versus
return
value
of
the
data
flow
would
be
this
structure
when
it
sees
an
array
that
is,
you
know,
4
0,
with
index
in
secure
package.
Second
index
DF
FML
right,
then
this
you
know
hypothetical
data
flow.
If
we,
if
we
specified,
use
a
data
flow
and
then
we
specified
that
we
should
use
this
data
flow.
A
This
hypothetical
data
flow
would
turn
that
array
of
insecure
packaged,
gamma
DF
of
ml
into
this
value.
Here,
which
is
you
know,
the
run,
data
flow
style
thing,
so
it
would
be
some
data
flow
that
transforms
whatever
the
body
input
is
into
the
thing
that
we're
actually
going
to
pass
to
run
data
flow.
A
So
that's
that's
like
something
that
will
need
eventually,
but
not
now
so
not
now,
but
eventually,
because
that
gives
you
complete
control
over
what
the
hell
are
we
doing
with
this
thing
and
then
we
need
the
last
mode,
which
is
basically
just
take
the
whole
input
body
and
assign
it
to
this
definition,
and
so
actually
well,
there's
one
more.
We
need
okay,
so
for
now
have
add
a
mode
which
says
we
should
take.
We
should
treat
the
whole
input
body
as
a
certain
definition.
A
Also
provide-
and
this
is
like
yeah-
this
is
I-
don't
know
if
it's
really
it's
sort
of
wrapped
up
in
this,
but
also
provide
a
way
to
have
the
input
be
treated
as
urn.
Now,
don't
worry
about
this
for
now,
so
so,
for
now
out
of
mode
which
says
we
should
treat
the
whole
input
body
as
a
certain
definition
and.
A
Okay,
so,
basically
with
you
for
this
case
right
we're
seeing
the
web
hook,
post
requests
not
come
through
right
and
well.
I
don't
have
an
example
of
that
right
now,
but
it's
this
giant
blob
right
of
JSON
and
yeah,
and
so
basically,
what
you're
gonna
say
is
in
this
file.
You're
gonna
you're
gonna
create
a
new,
a
new
kind
of
entry,
and
let
me
just
pull
this
up
real
quick
here.
A
A
Is
the
thing
that's
going
to
get
posted
right
so
with
this
option,
what
we're
doing
is
we're
saying
treat
the
thing
that
gets
posted
as
the
value
corresponding,
create
a
new
input
element
assign
the
value
to
this
whole
thing
and
then
have
the
have
the
definition
be
whatever
I
specify
in
this
config
file.
Does
that
make
sense.
C
C
A
D
D
A
A
A
A
D
A
Are
gonna
now
we're
trying
to
come
up
with
what
the
hell
is
this
thing
and
we're
like?
Well,
it's
a
thing
that
offers
multiple
channels
of
communication
right.
Each
channel
is
like
a
path
right.
So
if
you're
looking
at
a
cheapy
server,
the
channel
of
communication
would
be
the
URL
path
right,
and
so
this
thing
you
know
whatever
this
thing
is-
is
some
it's
some
contract
that
offers
multiple
channels
of
communication.
So
that's
end
up
being
the
name
for
the
base
class.
A
Here,
it's
a
multi
klom
because
it
offers
multiple
channels
of
communication,
and
so,
like
the
HTTP
servers,
a
multi-column
you
could
have
something
like
like
an
IRC
server
could
be
a
multi-column
right
if
you
had
messages
coming
in
on
different
channels,
and
you
wanted
to
treat
those
channels
like
every
every
message
to
every
channel.
It
gets
treated
with
a
different
data
flow.
That
would
you
know
that
would
be
a
multi-column.
I
don't
know
where
the
hell
it
went,
though
beautiful
it
should
be
in
here.
Maybe
oh,
it's
in
DF!
That's
why
multicom
yeah!
A
Basically,
this
is
just
is
a
mess,
but
it
goes
through,
and
this
could
probably
be
simplified
now
with
some
of
the
work
that
you've
done
recently,
but
it
goes
through
and
it
looks
this
is
what
so
you
know
where's
that
okay
register
could
be
the
reason
this
register
config
exists
is
because
this
base
class
is
going
to
call
that
register
config
method,
to
figure
out
what
the
hell
that
config
class
is
and
then
it
goes
through,
and
it
basically
says
the
data
flow.
This
is
the
way
it
looks.
D
D
A
D
A
Right,
great
yeah,
so
you
understand
this,
but
yeah,
basically
all
you're
gonna.
Do
you
need
to
modify
that
config?
You
need
to
modify
the
config
and
HP
server
side
and
then
you
need
to
modify
the
config
here
and
then,
if
things
get
screwed
up
parsing
it
you
just
fix
the
parsing
right,
so
I
don't
think
it
should
blow
up,
but
it
might
blow
up
on
you
anyway.
Just
add
this
new
config
mode.
A
D
A
Can't
export
it
right
if
you
exported
it,
then
a
json
dot
load,
it's
no
longer
as
a
thing
and
that's
dad
that's
why
we
have
that
problem.
Yeah,
so
I
think
you
need
this
for
now
and
then
we
got
to
figure
out
that
validation
thing.
Eventually,
the
validation
thing
is
very
cool,
it's
very
excited
about
it,
but
now
we
gotta.
Apparently
it
wasn't
as
easy
as
it
seemed.
A
Alright,
is
there
anything
else,
so
basically,
I
think
this
is.
This
is
the
new.
The
new
plan
here
is
make
make
make
a
demo
where
it
does
something
like
basically
make
an
example
where
so
you
go
make
some
make
a
documentation
page
where
we
show
how
to
use
a
data
flow
with
the
HTTP
service
to
receive
a
github
webhook
and
do
something
with
it
for
now
just
focus
on
getting
a
container
built.
D
D
C
A
D
A
Okay,
that's
that's!
That's
better!
Okay,
because
yeah!
Ideally
the
way
this
would
work
is
the
config
or
well
they
really
the
the
IMP.
You
should
have
an
input,
an
input
that
modifies
the
the
start
time
and
end
time.
Maybe
we
have
something
like
that.
Can
there's
a
config
that
lets
you
do
the
resolution
on
it.
A
A
Basically,
okay,
so
let's
just
go
with
this:
let's,
let's
say
for
ya,
for
the
demo
use
the
F
MPEG
operation
have
have
the
first
commit
the
or
have
the
yeah
first
commit
slash
initial
state,
the
a
data
flow.
So
you
have
a
you
have
like
you,
created
the
operations
right
and
and
then
basically
you're
pushing
an
update
to
that
deploy
directory
that
it
has
a
new
serialized
data
flow,
and
the
config
now
specifies
a
different
resolution.
Does
that
make
sense?
A
A
A
A
A
A
Here's
how
you
create
another
data
flow,
that's
going
to
actually
be
watching
on
the
web
hook
right.
So
you're
gonna
have
two
days:
flows.
You're
gonna
have
to
deployment
directories.
Basically,
you're
gonna
have
the
one,
that's
the
that's
actually
within
the
ffmpeg
operations,
and
then
you're
gonna
have
the
other.
That's
just
somewhere
else.
That's
actually
in
charge
of
doing
the
webhook
and
then
in
that
data
flow
it
pulls
down.
A
It
uses
the
get
operations
and
it
pulls
down,
it
does
the
git
clone
and
it
has
the
cleanup
and
it
does
the
container
build
and
it
does
the
well.
Ideally,
it
does
the
deploy,
it
actually
runs
it
with
like
pod
man
or
docker,
or
something
and
yeah.
You
can
sort
of
figure
out
how
to
do
that
or
you
can
just
take,
take
it
as
far
as
you
want
to
take
it
and
then
we'll
work
it
from
there.
Sorry
what.
D
A
Yeah
that
could
be
a
good
way
of
doing
that,
yeah.
They
are
exactly
that
would
be.
That
is
exactly
what
I
was
envisioning
for
this
initially
so
yeah.
That
would
be
the
best
way
to
do
this.
All
right,
perfect,
perfect,
yeah
and
then
I
mean
that'll,
be
a
very
complete
example.
On
okay,
hey
you
have
some
code.
You
want
to
make
sure
that
your
server
is
always
up
to
date
with
running
that
code.
A
A
F
F
A
F
A
Just
noticed
that
okay
yeah,
we
got
to
figure
out
what
to
do
about
that.
Let's
see
yeah
cuz,
all
of
those
don't
work
yeah,
okay,
maybe
we
just!
We
probably
just
need
to
make
an
issue
and
leave
it
as
an
open
issue.
So
Doc's
Logans,
yeah
I,
just
found
that
out
when
I
went
and
did
this
I
was
under
the
HTTP
API
and
this
doesn't
work
either,
because
this
is
a
symlink,
and
so
this
just
goes
nowhere.
A
D
A
Let's
see
I
don't
know
if
I
saw
this
sometimes
I
go
to
notifications
and
I
click,
every
single
one,
with
control
and
open
like
20
tabs
with
all
of
them
and
then
I
forget,
which
ones
I've
actually
looked
at
and
I
actually
haven't.
Let's
see,
okay,
I
updated,
you
can
print
sufficient.
Nobody
talked
about
the
dot
okay.
We
checked
him
at
this
okay
and
then,
let's
see
what's
up
here,
okay,
dependency,
jxh
and
we
still
are
hitting
the
permissions
issue,
damn
all
right.
Okay!
Well,
let's
see
what
is
the
check
say.
D
A
A
A
A
Yeah
great
sweet,
so
this
works
so
yeah.
You
can
actually
just
use
this
function
here,
but
let's
see,
let's
see
what
happens
because
we
may
or
may
not
need
that,
because
I
feel
like
I
saw
that
it
was
executable,
in
which
case
there's
a
different
problem.
Yeah
Java,
it's
I,
feel
like
you,
should
it's
much
faster
than
this
such
download
simile?
A
A
A
Yeah
well,
yeah
I
mean
we're
not
we're
not
the
smartest
and
so
they've
like
there's
I
mean
yeah.
How
do
I
describe
this?
Well
like
everybody's
staying
home,
which
is
good?
Well,
not
everybody.
Staying
home.
The
thing
is
like
a
lot
of
people.
Whoever
can
work
from
home
is
working
from
home
now
and
but
there's
still
like
a
lot
of
people
out
and
about
and
like
all
the
restaurants
are
open
for
takeout
and
delivery.
I,
don't
know
where
you
guys
are.
A
You
like
I
would
be
curious
to
hear
what
you
guys
after
I
tell
you
guys
about
this,
but
yeah.
All
the
restaurants
are
open
to
take
out
on
delivery
and
I
I
kind
of
I'm,
not
so
sure
about
that.
That
seems
kind
of
like
isn't
one
food
be
I'm,
not
I'm,
no
I'm,
no
scientist,
but
it
seems
like
when
food
be
kind
of
a
way
to
transmit
that.
But
who
knows
right?
I,
guess
not
me,
and
so
yeah.
That's
interesting
and
then
like.
A
D
A
A
A
A
Which
okay
good
job
is
there,
and
then
we
want
to
do
path,
equals
dependency,
check,
slash,
Bend,
oops,
oops
whoa.
What
happened
sometimes
I
accidentally
find
out
about
github
keyboard
shortcuts
I
recently
got
recently
recently
accidentally
found
out
that
okay-
and
this
is
now
in
the
path
alright.
So
weird,
okay,
so
looks
like
this
is
running
here
and
then
I
guess.
The
next
thing
to
be
checking
for
would
be
a
spelling
mistake.
A
That
is
odd.
Okay,
permission
denied
dependency,
checked,
Sh.
A
A
A
A
A
A
A
B
A
That
will
build
a
low
okay.
Well
that
doesn't
really
help
I'd
like
set
it
up.
That's
a
little
maven.
Can
we
just
run
it
though
command
line?
Yeah?
Oh,
you
actually
have
to
compile
the
Java
Sea.
This
is.
The
thing
is
about.
C
code
is
like
C
and
C++
anything
you
have
to
compile.
You
have
to
like
download
all
the
dependencies
and
it
becomes
a
giant
mess,
and
so
this
may
not
be
it's.
Why,
like
it
may
or
may
not
be
good
right?
It's
like
reminds
a
few
pre-configured,
so
I
can
also
say.
A
A
A
B
A
B
A
Okay
and
then,
as
for
this.
A
A
C
A
Uh-Huh,
yes,
you're
right,
you
are
100%
correct
for
some
reason.
Oh
you
know
it
is
it's
probably
because
the
Python
sh-shoot
ill
unpack
archive
does
not
preserve
permissions,
whereas
unzip
does
the
unzip
utility,
the
command-line
utility,
so
you
were,
you
were
definitely
you
were
on
the
right
track
there.
So
use
definitely
use
this
function
here.
So.
A
A
B
A
B
A
A
D
G
A
B
E
B
A
A
A
A
G
A
A
A
A
Okay,
oh
that's!
What's
going
on
yeah
we're,
not
saving
prediction
from
this
one?
Okay,
we
should
probably
do
this
kind
of
how
the
CSV
source
does
it
should.
We
are
sure
we
just
this.
A
A
No,
this
will
be
good
because
we
don't
need
that.
We
don't
care
about
this
so
much.
We
don't
care
about
this.
So
much.
A
Just
write
I
mean
just
write
a
few
tests
for
this
basically
right,
and
so
this
is
going
to
be
used
for,
because
that
was
this
one
I
mean
we're
intentionally
making
this
simple
right
and
so
I
think
we
can
just
make
the
decision
not
to
save
predictions
here
and
so
yeah.
Let's
just
go
ahead
and
say,
replace,
don't
worry
or
don't
involve.
A
A
So
I
just
added
this
recently
to
the
high-level
API,
but
I
thought
there
was
something
with
HTTP
API
that
made
me
think
wow,
you
know,
wouldn't
it
be
nice
if
we
could
just
like
save
records
real
quickly
like
just
open
a
source,
update
it
with
these
records
and
then
dump
like
and
then
be
done
close
the
source.
So
I
made
this
save
helper
method.
That's
that's!
A
In
a
high
high
level,
API,
and-
and
here
it
is
it's
just-
this
is
all
I
such
as
so
say,
sync
with
source
source
of
source
contact
for
record
in
args,
updated
right,
so
it
effectively
saves
all
the
all
the
records
to
that
source.
So
you
could
just
have
the
the
like.
You
know
you
could
use
this
function
and
then
what
we
can
do
is
we
could
make
another
function
called
load,
and
this
might
be
is.
A
A
G
A
A
A
A
So,
let's
see
did
it
that
means
means
you'll,
want
to
call
sourced
up
record
and
yield
each
one.
A
G
A
Yeah
so
basically
their
load
all
the
records,
if
no
arguments
are
given.
If
the
the
list
of
optional
arguments
is
basically
the
record
strings,
record
record
keys
of
strings
and
if
those
are
given
then
just
grab
each
one
from
the
source
and
yield
that,
and
hopefully
this
will
make
that
that
tutorial
a
little
simpler
and
then
so
can
I.
Ask
you
to
please:
please
create
an
issue
for
this,
so
that
the
pr
for
load
can
close
the
issue
yeah.
A
If
you
look
at
like
the
milestones
and
the
closed,
it's
very
helpful
because
then
we
can
see
like
all
of
the
issues
that
were
I've
noticed
this
recently,
just
in
general
for
everyone
but
yeah
like
yeah,
then
we
can
see
everything
that
we
did
so
yeah
if
anybody
just
that
goes
for
everybody
like
if
you're
happen,
to
drop
a
PR,
that
you
realized
that
there's
no
issue
for
please
make
an
issue
and
then
we
can
have
the
PR
close
the
issue
just
that
way.
Then
we
know
what
we
did
but
yeah
cool.
G
C
John
yeah,
we
haven't
oh.
C
Very
confusing
still,
but
the
thing
is
that,
from
the
function
from
dick
and
mmk
are
not
very
clear
and
our
throwing
errors
every
time,
I
try
something
so
also
the
CM
dot.
Firefight
is
the
main
file
where
everything
starts.
I
can't
write
everything
and
go
with
it.
I
have
to
do
it
one
by
one.
So
it's
taking
a
lot
of
time.
Okay,.
A
H
A
A
C
H
A
A
A
Now
one
of
the
things
we
haven't
figured
out
is
things
like
parse
logging
action
so
that
that
hasn't
been
that's
not
something
that
we
figured
out
yet,
but
I
don't
really
know
if
we
need
to
do
that
in
this
case,
this
is
gonna,
come
up
more
okay,
so
the
parsing,
the
parse
actions
right
now
I
think
are
limited
to
logging.
And
what
are
they?
Let's
check
it
out?
Can
you
go
and
parsers
parse
it
up?
He?
A
Okay.
How
should
we
do
this?
Okay,
so
okay,
so
let
me
just
react.
Splain,
the
the
connection
between
the
fields
and
m'kay
argh,
real,
quick.
A
When
we
use
m'kay
argh,
what
we're
doing
is
we're
taking
we
yeah,
okay,
so
we're
looking
at
a
field
and
we're
converting
it
into
an
argument
right.
So
we
never
want
a
field
to
be
an
argument.
We
never
like
you
know
one
of
the
fields
in
the
class
to
equal,
an
argh,
because
we're
gonna
actually
convert
it
into
the
ark
and
so.
C
A
Shouldn't
be
a
dictionary,
basically
go
back
to
your,
where
you
had
that
definition
and
we'll
and
we'll
work
through
how
we
define
arc
or
log.
So
log
is
going
to
be
of
type,
let's
see.
Well,
it's
of
type
impt
technically,
so,
let's
see
actually
okay,
this
one's
a
tricky
one.
Actually
this
is
this
brings
us
right
to
some
tricky
stuff.
A
A
A
Okay
and
it
might
do
okay
so
and
then,
if
you
go
to
m'kay
argh
you'll,
see
you'll,
see
how
basically
it
looks
at
field,
so
it
looks
at
field
default
to
try
to
so
it
makes
the
argument,
and
it
says
the
type
is
whatever
the
fields
type
is
right
and
then
it
goes
through,
and
it
says:
okay
grep.
If
there's
default
value
now
we
need
to
set
the
arcs
default
right
ends
and
fields,
don't
allow
for
default
values
that
are
mutable
so
like
lists
and
things
so.
A
A
A
A
And
so
that's
that's
what
action
is
so
action
is
basically
it
we
can
use
if
it's
a
boolean
value
then
then
store
true,
we'll
end
up
doing
a
switch
on
on
you
know
if
you
just
specify
it
like
a
dash,
for
example,
if
you
have
some
sort
of
command
on
the
command
line,
you
say,
like
you
know,
read,
you
know,
read
only
write
or
read
right
right.
Well,
we
don't
need
to
say,
read
right
space.
True,
we
can
just
say
read
right
and
it
will
assume
that
it's
true.
A
So
that's
what
the
the
action
is
and
then
we
go
through
here
and
now
we're
inspecting
the
type
and
when
we
inspect
the
type
this
is
like
oK.
We've
already
got
list
action.
Actually,
that's
good!
That's
good
news!
So,
okay,
so
okay,
action
list
action
is
that
okay,
so
I,
can
you
flip
back
to
command
real
quick
where
you
had
that
log?
Okay,
an
action
equals
parse
logging
action.
Okay,
this
is
good.
Actually
this
is
good.
Okay,
so
we've
already
got
away.
A
C
A
A
Yeah,
if
description
then
help
right,
so
anything
that
you're,
having
trouble
figuring
out
like
you're
like
okay,
how
do
I
like
what
is
the?
How
do
I,
how
do
I
pass
this
down
to
MK
argh
right?
How
do
I
take
this
thing
that
I
can
describe
for
typing
information?
You
mostly
need
to
figure
out
like
okay.
You
need
an
appropriate
data
type
for
this
thing,
and
then
you
need
to
figure
out
how
does
MK
argh
like
for
these
list
actions
right
so
for
like
sources?
A
We're
gonna
need
source
to
have
this,
we're
probably
going
to
need
source
to
have
this
sync
we're
going
to
need
to
add
this
singleton
attribute
to
source
right
and
the
singleton
is
going
to
be
it's
going
to
be
the
base
base
source
right
because
each
entry,
the
list
the
list
is
sources,
but
each
entry
in
the
list
is
a
base.
Source
is
derived
from
base
source
right.
A
So
for
that
type
of
thing,
you're
going
to
need
to
work
for
the
typing
information
you're
going
to
need
to
work
with
like
how
do
I
extract
what
I
need
to
from
that
data
type.
So
if
I
set
a
field
and
I
say
sources,
:
like,
for
example,
if
we're
replacing
self
like
argh
underscore
sources,
then
what
we
would
do
is
we
would
say
in
the
config
class
we
would
say
sources,
:
sources
with
the
capital
s
equals
field.
And
then
you
know,
like
maybe
the
description
for
that
field,
right
yeah.
A
And
then
close
sources,
I
doesn't
matter,
I
mean
we're
just
we're
just
mocking
this
up
right
now,
right!
Alright!
So
and
you
don't
even
need
field
here,
right,
I
mean
you
could
do
it
or
ya
do
field
and
say
so,
sources
for
loading
and
saving
right,
because
we're
just
going
to
copy
it
right
and
then
we're
gonna
do
default.
A
A
A
Think
it's
lambda
:
and
then
so
don't
do
it
in
the
array.
Just
copy
paste
from
default
equals
sources
down
here,
just
copy
paste
until
the
next
comma.
There.
Yes,
oh,
very
well,
just
sources!
You
just
want
sources,
so
sources
open,
paren,
yeah,
so
delete
that
action
and
type
yet
delete
those
two
lines
and
then
delete
that
delete
that
paren
tour
delete
that
yeah
delete,
Bacchae
and
then
delete
that
bracket
there
and
then
delete
default
equals.
So
you
just
have
sources.
F
A
Yeah
and
then
delete
that
comma
leave
that
guy
yeah
perfect.
So
this
is
what
it
looks
like
now
right.
So
basically,
what
you're
saying
is
sources
is
of
type
sources
and
it
equals
this
field
where
the
description
is
sources
for
saving
and
loading
default.
Factory
is
going
to.
Let
you
create
this
default,
and
the
default
value
is
sources
where
the
first
entry
is
this
json
source
right.
A
Okay,
so
now
now,
what's
going
on
here
is
okay,
and
this
is
going
to
be.
This
is
going
to
be
now
a
little
bit
different
too,
so
we're
gonna
I
think
we're
gonna
need
a
new
thing
that
we're
gonna
passed
a
field
that
we're
going
to
put
in
the
metadata
field
or
that
we're
gonna
put
in
metadata.
We're
going
to
have
we're
gonna.
Do
let's
say
so
right
now,
if
you
flip
back
over,
so
look
first,
look
at
type,
you
see
type
equals
based,
sort
out,
load,
labeled,
right
and
action
equals
list
action
sources
right.
A
So
here
we
see
okay,
look
when
we
see
something,
that's
a
that's.
A
list
type
were
like
okay,
we're
gonna,
add
this
n
are
x,
equals
plus,
which
is
what
we
saw
on
previously
and
we're
gonna
say
the
action
equals
list
action
whatever
the
type
is
that
will
create.
That
will
give
us
that
list
action
sources
just
like
we
had
before,
and
then
we
need
to
set
the
type
equals
field,
type,
dot,
singleton
and
so
go
to
features
real,
quick
and
see.
What
is
in
features
features
differ
from
null
search
feature,
slash
feature.
A
B
A
Features
here
we
go
singleton
feature
so
collections
that
user
list
and
says
singleton
equals
feature
alright.
So
what
we're
gonna
need
to
do
is
we're
gonna
need
to
make
it
so
that
sources
is
kind
of
like
features
here
now,
okay,
so
the
next
question
is
so
what
we
want
to
do
is
we
want
to
go
into
sources
and
we
want
to
say
singleton
equals
base
source
so
go
into
DL
search,
source,
slash
source.
A
Base
source
right,
so
this
is
saying
what
we're
doing
is
I,
don't
know
if
single
single
single
tonight
have
been
the
right
choice
of
words
here,
but
it
works.
It's
basically
like
what
is
one
of
these
things.
You
know
if
the,
if
the
plural
is
sources.
What
is
the
singular
right?
So?
Well,
it's
a
base
source
right.
So
if
we
have,
we
have
multiple
sources.
But
what
is
each
thing
in
here
well
check
the
singleton
property
of
the
class
okay.
A
Each
thing
in
here
is
going
to
be
a
base
source
and
that's
what
this
property
is
telling
us
right.
So
now
go
back
to
where
we've
got
m'kay,
argh,
okay
and,
let's
see
here
so
fill
the
type.
That's
singleton.
Okay.
So
if
has
at
her
type
load,
then
type
dot
load,
okay.
So
this
is
how
this
is
how
okay?
This
is.
How
now
this
is
a
good
question
here.
A
G
A
It
just
so
happens
that
we
haven't
run
into
the
case,
yet
we're
gonna
run
into
it.
Now
that
I
just
added
the
model
stuff
to
the
CLI
command
for
starting
the
HTTP
server,
I
did
modest
with
load
labeled
right,
but
right
now,
we've
just
done
models
without
load
and
sources
is
the
only
thing
that's
had
load
labeled,
which
is
created.
You
know
this
whole
problem
where
we've
got
sources
are
different
than
everything
else
right
now
right,
so
we
need
some
way
to
specify.
Probably
I
would
say
you
should
add
something
to
so
this
this.
A
F
A
A
A
A
Right,
so
what
this
will
do
is
it'll
basically
say:
okay,
if
the
type
has
a
load,
labeled
function
and
metadata,
has
the
keyword
labeled
set
to
true,
because
it'll
default
to
false.
If
it
doesn't
exist,
then
we
know
that
we're
supposed
to
be
setting
our
type
equals
r
dot,
so
we're
the
line
above
this
line
where
we
basically
say:
okay,
if
the
type
has
the
load
method,
then
we're
gonna
use
the
load
method
and
what
that's
going
to
do
is
just
like
when
you
specify
a
model
on
the
command
line.
It's
not!
A
Actually,
you
know
if,
if
we
said
type
equals
model,
it
would
then
pass
the
string.
That
is
the
model
name
to
the
model
right
error,
two
to
moded
the
class.
That
is
the
model
or
that
is
the
base
class
for
models
right,
because
that's
the
way,
if
you
look
at
our
person
type
and
the
way
it
works,
it
basically
says:
okay,
if
I
add
an
argument
that,
if
I
specify
the
type
for
this
argument,
I'm
going
to
take
the
string
value
of
whatever
was
given
and
I'm
just
gonna
call
the
function
right.
A
So
if
I
say
type?
U
equals
int,
it's
just
gonna
pass
the
string
value
of
two
to
the
int
built-in
function
and
it's
gonna
convert.
You
know
the
string
value
of
two
to
an
int
right,
so
we
don't
want
that.
We
want
it
to
call
load
or
load
labeled
right
because
we
have
a
string
value
and
the
string
value
isn't
the
thing
that
should
get
passed
to
base
source
or
model.
The
string
value
is
the
name
of
the
plugin,
which
is
a
model
or
a
base
source
right.
Does
that
make
sense?
Yeah.
C
A
A
B
A
You
see
the
pattern
right,
so
if
you
don't
have
access
to
something,
add
it
to
the
metadata
and
then
for
action.
I
would
say:
action
is
another
one
of
those
things
where
okay
right
now
we're
just
inferring
that
if
this
is
a
list
type,
we
set
the
action
well
if
action
is
set,
if
you
pass
action
to
field
propagate
action
to
field
metadata
and
then
use
action
within
MK
arc
right,
okay,.
A
So
well,
and-
and
this
will
be
on
a
case-by-case
basis
right
so,
for
example,
if
you
see
here
right
this,
if
statement
the
the
if
statement
is
saying
the
L:
if
inspect
is
class
field
type
right
and
then
we
say
we
say:
okay,
this
is
a
class,
and
if
it's
a
list,
then
we
know
we're
going
to
set
action.
Equals
list
action.
A
If
I
don't
know
about
this
right
now,
how
do
I,
let
myself
know
about
it
right
if
I,
if
MKR,
doesn't
know
about
what
I
should
do
with
this,
then
how
do
I
add
it
to
metadata
or
something
right?
And
you
basically
just
do
this-
you
keep
you
keep
knocking
through.
I
would
say:
try
to
make
these
committees
config
classes
for
as
many
things
as
you
can
right,
just
keep
going
through
and
like
making
config
classes
for
all
of
these
command
line,
command
line.
Okay,.
C
A
All
of
them
right,
and
so
the
thing
is
the
reason
why
it
works.
The
way
it
does
is
because
the
reason
why
works
the
way
it
does
is
because
we
had
this
like
it
gave
the
ability
to
subclass
really
easily
and
then
all
sudden,
you
know
it's
like
okay.
Well,
this
command
takes
a
bunch
of
sources
and
a
bunch
of
models
and
well
then
it's
a
machine
learning
commands,
and
now
we
just
like
create
a
what
is
I
can't
think
of
the
goddamn
word
for
it.
Now
it's
like
polymorphic
or
something
I,
don't
know.
A
A
Sorry
yeah
so
basically
I
mean
the
reason
why
we
did
it
this
way
initially
was
because
you
could
you
could
easily,
like
you
know
you
could
you
could
say
okay.
This
is
just
like.
If
you
look
in
commands
right,
you'll
see
that
this
is
a
sources
command
and
this
is
a
features
command
and
and
then
all
the
sudden,
you
can
start
like
having
multiple
parent
classes.
I
think
it's
called
polymorphism
right.
A
H
A
A
Yeah,
so
ml
command
is
model
command
and
sources
command
right
and
so
all
of
a
sudden
it
got
art
model
and
argh
sources
right,
and
then
you
get
self
model
and
self
that
sources
right.
So
here
all
of
these
are
ml
commands,
so
basically
an
ml
command,
it's
model
command
and
sources
command.
So
what
you're
going
to
need
to
do
is
just
this.
This
one
actually
ended
up
being
easy
right.
What
you're
going
to
need
to
do
is
you're
going
to
need
to
make
an
ad
config.
That's
like
at
ml
commands
are
big.
C
A
Gonna
need
to
make
a
config,
that's
like
at
ml
command,
config,
and
what
I'm
talking
about
here
is
because
ml,
the
one
you're
replacing
is
something
that
had
model
command
and
sources
command
where
you're
gonna
need
to
do
is
you're
gonna
need
to
go.
Look
in
model
command.
Grab
that
arg
model
pull
it
out,
convert
it
to
the
new
format.
Then
you
need
to
go.
A
Look
and
sources
command,
pull
out
arc
sources,
convert
it
to
new
format,
which
is
what
we
just
did
and
then
you're
putting
them
now,
both
in
this
ml
command,
config,
right
and
so
all
I'm
telling
you
is
that,
like
you're
gonna
run
into
these
ones,
these
commands,
where
they
have
multiple
base
classes,
and
so
you're
gonna
need
to
look
in
every
base
class
and
grab
all
their
arguments
and
pull
them
into.
You
know
their
own
config
class.
Yes,.
C
A
The
unifying
stuff
is
not
about
decreasing
the
the
code
base
here.
It's
about
the
fact
that
were
we're
going
to
it's
it's
about
conforming,
the
codebase
all
to
the
same
standards
right
because
right
now
we
have
one
way
of
configuring.
Every
single
other
class
and
one
way
of
configuring
command
line
stuff
so
net
on
this
whole
thing
is
probably
going
to
be
like
equal
lines
at
it
and
deleted
right.
A
Okay,
so
this
is
yeah.
This
is
no
I
mean
this
is
no
small
undertaking.
This
is
like
a
good
job
doing
this.
It
seems
like
you're
figuring
it
out,
so
this
I
mean
then
this
is
why
I
like
I've
had
so
many
things
to
do,
and
this
is
psycho
Wow
like
this
is
going
to
be
a
big
one,
so
I'm
glad
that
you
wanted
to
tackle
this
so
yeah.
So
this
basically,
this
is
like
this
looks
good
for
sources
command.
I
mean
this
syntax.
A
Honestly
I
think
that
that
sources
might
need
to
be
able
to
on
the
same
line
as
that
:,
but
I'm,
not
sure,
but
I
think
do
you
get
the
do
you
get
the
picture?
What
needs
to
happen
here,
not
not
that
sources,
the
second
one
under
default
factory
I
mean
it's
it'll,
throw
a
syntaxerror
you
if
it's
wrong
but
yeah.
So
do
you
get
you
get
what's
going
on
here
then.
A
Exactly
tackle
everything
one
by
one
and
make
a
commit
right
so
so
try
something
now
make
it
like
go.
Go,
find
a
class
with
very
few
arguments.
Try
to
convert
that
one
and
then
once
you've
got
that
one
working
move
to
the
next
one
right
and
every
time
you've
got
one
working,
make
a
commit
and
get
right
or
even
when
you
don't
have
one
working
make
commits
just
make
lots
of
commits
and
get.
C
C
A
A
C
A
C
A
A
So
parts
logging
action
right,
so
action
is
parse
logging
action.
So
if
you
say
like
we
talked
about
propagate
action
through
field,
allow
setting
of
action
equals
whatever
and
then
in
def
field
within
base.
Say:
okay,
if
you
see
action
as
one
of
the
keyword
arguments
put
it
in
metadata
right
and
then
you
should
be
able
to
replicate
log.
F
A
G
A
We're
converting
field
into
args,
so
what
you
want
to
do
is
you
want
to
iterate
over
the
fields
and
then
just
call
MK
argh
right,
and
you
want
to
modify
MK
argh
Intel.
It
gives
you
the
correct
argument
right
that
you
would
have
specified
there
right.
So
you
can
put
required,
and
stuff
is
probably
something
that
you
want
to
pass
down
it
to
metadata
as
well.
Right
I
was.
C
A
Yeah
yeah,
you
have,
you,
have
the
go
ahead.
This
is
going
to
be
a
change
things
everywhere,
sort
of
project.
This
is
gonna,
be
a
big
one,
so
yeah
yeah.
This
is
gonna,
be
good.
Stuff.
I
think
you
know
monthly.
Once
you
figure
out
like
I,
think
we
got
sources
should
be
pretty
much
figured
out
and
then,
once
you
add
this
action
action
part
to
metadata
and
field
and
stuff,
and
then
you
add
required
you're
gonna
be
pretty
much
well
on
the
way
there
now.
A
The
other
thing
that
you're
gonna
need
to
think
about
is
that
scroll
up
real
quick
here?
So,
let's
scroll,
yeah,
add
subs
here,
yeah
so
add
argument,
method,
name,
okay,
so
the
thing
is
what's
gonna
happen
now
is.
Is
this
is
a
for
loop
over
write
this
for
loop,
you're
gonna
have
another
for
loop
at
the
same
indentation
level
of
that
one
and
oh.
A
C
A
A
A
C
A
Good
I'm
glad
it's
helpful,
so
let
me
make
sure
it's
still
recording.
Yes
thank
God,
okay,
so
you're
gonna
want
to
propagate
position
into
here
as
well,
and
you're
gonna
want
to
go
through
and
probably
add
all
these
arguments
to
some
list
and
then
you're,
gonna,
say
sort
by
position
and
any
ones
that
don't
have
a
position
you're
going
to.
A
That's
all
the
arguments
with
a
position
field
sorted
by
position
now
go
through
and
do
add
argument
for
all
of
the
ones
with
a
or
way
go
through
an
add
argument
for
all
of
the
ones
without
a
position
field
and
put
a
dash
in
front
of
their
name
right,
and
so
you
know
like
so
anything
that
is
not
a
positional
argument
will
be
like
log
is
not
a
positional
argument,
so
it
won't.
You
won't
set
position
when
you
call
field
you'll,
just
do
like
we've
done
right
and
or
like
sources
is
like
sources.
A
Is
another
positional
argument?
It's
an
argument
that
has
a
dash
in
front
of
it.
So
basically,
unless
you
see
position
in
the
metadata,
then
just
hat
on
the
first
pass
add
all
the
arguments
that
don't
have
a
position
and
put
a
dash
in
front
of
their
name,
because
the
first
argument,
too
self
dot,
add
arguments,
II
method,
name,
the
it's
going
to
be
field,
dot
name
but
field.
Dot
name
will
need
to
have
a
like
a
prepended
to
it,
because
their
else
art
purse
is
going
to
think
it's
a
positional
argument.
A
So
your
first
loop,
through
you,
add
all
the
ones
that
don't
have
positional.
Then
you
take
all
the
ones
that
have
a
positional
field
in
metadata.
You
sort
them
based
on
that
integer
value
and
then
you
add
them
appropriately
in
another
loop
and
you
don't
put
a
hyphen
in
front
of
them
so
that
art
purse
knows
that
they
don't
need
a.
C
A
Basically,
you're
gonna
look
so
R
equals
m'kay
argh.
If
you
don't
see
so
look
in
field
dot
metadata
and
if
you
don't
see
position
do
self
dot.
Attica
argument:
if
you
do
see
position,
don't
do
self
dot.
Add
argument
instead
append
this
argument
to
a
list
and
and
maybe
end
a
position
as
well
or
something
okay,
yeah
yeah.
Now
you
get
it
right
or
like
a
dict
right
and
then
it's
zero
through
whatever
just
make
sure
you
get
you
that
first
pass.
C
A
Yeah
exactly
right,
source
file,
name
right,
so
so
well
that
one
actually
is
not
that
that's
one
of
the
ones
that
gets
parsed
in
extra
args,
but
like
model
and
sources
right
they
are
they're
required
and,
and
they
are
not
positional
right-
you
can
put
them
wherever
you
want.
If
you
look
at
like
the
merge
command
or
you
know,
the
merge
command
I
know
is
a
good
example
of
this,
but
that
is
that
has
a
positional
argument
in
it,
so
yeah
Destin,
SRC
and
right
now
this
is
flow
around
honestly.
A
A
C
A
Right
so
see
we
have
the
what
we
want
to
call
it
the
datatype
and
then
feel
so
base
source
equals
field
sources
to
merge
records
into,
and
then
in
this
case.
Currently
this
is
it's
really
dumb
and
it's
got
dust
is
first
and
I
hate
that,
and
you
don't
need
default
factory
on
this
one
because
there's
no
default,
you
want
position,
equals
zero
right
or
no
position
equals
one
in
this
case,
and
then
you
just
copy-paste
this
and
you
do
SRC
and
in
that
case
position
equals
0
right.
A
C
C
A
C
A
Which
is
why
it's
annoying,
because
really
destination
should
be
after
source,
which
is
why
it's
not
documented,
because
it's
dumb
right
now,
but
now
what
we'll
be
able
to
do
is
say
position
under
SRC
will
do
yeah
we'll
do
position
equals
zero,
and
when
you
add
argument,
you
make
sure
you
sort
the
list
of
arguments.
So
you
what
you
went
through
this
list.
This
is
perfect
yeah.
You
went
through
this
list
in
in
what
is
it
command?
A
You
go
through
the
list
of
fields
right
and
you
see.
Okay,
both
these
have
a
position.
Well
then,
I'm
gonna
add
them
to
a
list
of
things
with
the
position
right.
Add
everything:
that's
not
that
doesn't
have
a
position
just
do
partial
to
do
self
dot,
Agra
or
that
argument
and
put
a
hyphen
in
front
of
it.
Everything
that
does
have
a
position.
Add
it
to
a
list,
sort
the
list
and
then
add
it.
A
A
Right,
sweet,
nice,
stuff-
and
let
me
know
I
mean
this-
is
like
this
is
sort
of
like
I,
think
I
think
that
we
covered
everything
you're
going
to
need
here,
but
we
probably
probably
left
something
out
right
so
and
for
example,
on
these
labeled.
It's
going
to
be
need
to
need
to
be
set
to
true
for
this
merge
command.
C
A
A
About
like.
A
A
A
A
How
are
we
gonna
specify
in
the
command
line
to
call
this
operation
and
pass
these
arguments
well,
unifying
this
configs
stuff
is
going
to
help
us
do
that
easier,
because
it's
basically
this
is
going
to
be
the
first
step
in
that
too,
so
in
in
getting
rid
of
the
amnesty
mga
and
just
making
it
PNG
so
because,
or
else
what's
gonna
happen
is
we're.
Gonna
have
multiple
places
where
we're
gonna
need
to
change.