►
From YouTube: NuPIC python 2 to 3 migration initial investigation
Description
Broadcasted live on Twitch -- Watch live at https://www.twitch.tv/rhyolight_
A
I'm
gonna
be
investigating
our
Python
project,
new
pic
new
mint,
a
platform
for
intelligent
computing,
and
we
need
to
first
of
all,
it's
Python
too,
and
I'm
reminded
every
time
I'm
at
the
command
line
that
the
Python
to
end-of-life
is
January
2020.
So
we
need
to
potentially
upgrade
new
pic
or
a
port
new
pic
to
use
Python
3,
so
I
want
to
start
I'm.
We
haven't
decided
to
do
anything
yet
we're
gonna
may
have
a
meeting
tomorrow,
but
I
want
to
start
thinking
about
this.
A
A
A
To
be
in
Python
3,
since
I
found,
twos
and
of
life
is
coming.
We
can't
legitimately
continue
writing
code.
That
we
know
is
not
going
to
be
supported,
so
we
have
to
write
new
Python
Python
3.
That
means
we
cannot
use
new
pick
one
point
whatever,
because
it's
Python
2
7.
Obviously,
so
we
have
two
choices
right
all
of
our
new
HTM
code
and
the
reasons
he's
right
now.
A
gym
code
is
if
we
wanted
to
put
supporting
code
for
a
research
paper.
A
So
people
could
understand
how
it
works
and
see
it
working.
That's
sort
of
one
of
the
reasons
of
it.
New
big
exists,
although
it's,
it
has
been
optimized
to
some
extent,
so
we
could
just
do
without
new
pick
entirely
that's
an
option
knowing
that
it
we
still
have
an
implementation
in
Python
2:7.
If
we
need
it,
it'll
still
be
there.
A
If
anyone
wants
to
use
it,
they
would
just
have
to
maintain
their
own
Python
2:7
environment,
or
we
could
port
new
pick
to
Python
3
I'm
gonna
I'd
like
to
know
how
much
effort
this
is
gonna.
Take
I,
haven't
feeling
it's
gonna,
take
quite
a
bit
of
effort,
but
so
I
was
just
going
to
spend
the
next
hour
or
so
in
the
new
pick
code
base
investigating
what
it
might
take
to
get.
You
know:
whoops,
oh
yeah
I
was
gonna
put
on
some
music
first,
it's
a
Grateful
Dead
day.
A
A
A
C
A
A
So
did
I
remove
swarming
I,
think
I
just
removed
two
swarming
I
remove
the
examples
so
I
need
to
go
where
this
is
warming.
I
know
swarming
is
in
here
source
new
pig.
Here
you
go
swarming,
let's
delete
this
now
I'm
just
gonna
see
what
breaks
will
delete.
Swarming
will
delete
swarm
examples
and
we'll
delete
swarming
tests,
which
are
all
long
running
tests
just
delete
the
whole
thing
just
get
rid
of
it.
Now,
let's
run
the
tests
and
watch
everything
break.
C
A
A
Okay,
but
it's
pulling
in
all
this
stuff
from
swarming:
why
why?
Why
is
it?
Why
is
it
pulling
in
swarming
stuff
to
get
a
job
ID,
okay,
so
I'm
pretty
sure
some
of
the
experiment-
generator
stuff,
depended
on
swarming
logic,
to
set
up
experiments
that
would
swarm
and
then
run
tests
afterwards
or
something
like
that.
A
This
is
all
like
old
old
stuff,
but
I
hate
I,
don't
know
what
tests?
What
are
the
tests
in
here
that
were
running
the
cert
is
int,
so
I
have
bad
feeling.
This
is
like
a
base
class
yeah.
Of
course
it
does
experiment
test
base
class.
What
extends
this
positive
experiment
tests
anything
else.
That's
the
only
thing
that
extends
it
experiment
test,
base,
class,
positive
experiment,
test
I,
would
love
to
try
and
delete
swarming.
A
A
D
A
A
A
A
A
A
A
C
A
Yeah
and
it
does
some
swarming-
that's
okay,
so
let's
get
rid
of
this.
Let's
get
rid
of
this.
Let's
delete
the
experiment,
generator
test,
yes
and
then
go
find
the
experiment
generator,
which
is
in
the
OPF,
which
is
framework.
Hope
you
have
experiments,
yeah
I'm,
not
gonna.
You
know
what
I'm
just
gonna
leave
it.
Let's
leave
it
just
leave
it
there
and
and
try
and
see
what
else
failing
right.
I
hope
you
have
benchmark
tests.
Okay,
so
there's
swarming
in
opf,
benchmark
tests.
Why?
A
A
Okay
prediction
measures
such
a
great
okay,
see
I'm
afraid.
Why
are
we
swarming,
though
we're
we
have
to
go
to
swarming
to
get
the
Expedia
narrator
that
doesn't
make
sense.
The
XP
generator
is
part
of
swarming
and
permutations.
Renner
is
part
of
swarming
I
had
no
idea,
I
thought
it
was
something
different.
Oh
that's
why
I
didn't
find
it?
A
A
Auto
scroll
from
source
there
Jerry
Mungo
there
we
go
generate
models.
What
calls
generate
modules
a
lot
of
stuff,
opf
benchmark
runner.
A
lot
of
stuff
calls
generate
modules.
Ok,
let's
take
a
look
at
this
benchmark,
sawtooth
kind
of
test.
Is
this:
try
running
a
basic
experiment
and
permutations,
so
even
this.
C
A
A
So
so
there's
both
don't
screw
the
tests,
but
I'm
ignoring
the
huge
worry
I
have
because
there
is
I've,
got
a
huge
legitimate
worry
that
all
these
opf
tests
in
here
tons
we've
got
tons
and
tons
of
opf
tests
like
you
could
just
run
these
and
they're
gonna
fail
because
I
removed
the
swarming
library,
but
there's
a
ton
of
tests
in
here
and
they're,
not
just
testing
the
OPF.
They
are
testing
the
algorithms
I'm
certain
of
it
I'm
certain.
A
Api
or
algorithms
interfaces
which
is
not
going
to
be
fun
or
we
take
a
test
coverage
hit
big
time,
which
is
another
option,
that's
something
we
could
potentially
do
too.
You
know
I
didn't
even
think
about
that,
but
I'm
gonna
write
that
down
because
I'm
trying
to
figure
out
all
of
our
options,
and
we
have
there's
a
lot
of
options
when
we're
talking
about
porting.
A
A
That's
an
option
that
would
honestly
be
the
lowest
touched
easiest
way
to
move
forward.
The
downside
is
we'd
have
to
write
extra
code
to
support
research
code
that
already
exists
in
new
pics
that
we
were
gonna
have
to
re-implement
some
things,
some
HTM
things,
but
we
could
do
it
sort
of
piecemeal
who
didn't
take
what
we
want.
A
The
other
thing:
oh
yeah,
those
port
nupic
to
python.
There's
a
million
there's
a
lot
of
ways.
We
could
do
this
I,
don't
think
it's
worth
moving
the
OPF
I,
don't
think
it's
worth
moving
swarming!
But
now
so
I
went
in
to
say
well,
I
know
we
don't
need
swarming,
I,
always
say
that,
and
so
I
went
in
to
look
to
figure
out
what
it
would
take
to
just
remove
the
swarming
library
and
I
found
out.
A
I'm
gonna
talk
with
tsumetai
and
Louis
about
this
tomorrow
and
I'll
get
a
better
idea
of
these
tests
like
this
is
testing
region.
I,
just
can't
I
know.
There's
got
to
be
some
functional
testing
in
here
that
we
might
that's
testing
the
function
Alec
each
TM
functionality
that
I
don't
want
to
throw
out
when
we
throw
out
the
OPF
so,
but
assuming
that
we
figure
out
what
that
is,
I
want
to
just
like
delete
the
OPM
just
delete
it
like
that.
That
means
we
delete
all
the
OPF
tests
frameworks.
A
Let's
see
what
tests
look
like
now,
I
think
they're
busted,
something
so
even
so
now
we're
still
running
into
problems,
because
there's
a
JSON
object
in
the
in
swarming
library
that
we're
using
as
Jason,
which
is
weird.
Why
are
we
doing
that?
Why
are
we
doing
that?
Why
are
we?
Why
did
we
define
our
own
JSON
object?
Can't
we
just
import
Jason
I
mean
I'm
gonna,
make
an
assumption
that
might
work.
A
A
A
A
A
A
A
D
A
R
copy,
why
is
it
here?
We
don't
know
so,
let's,
let's
here's,
what
I'm
gonna
do
for
now.
I'm
just
gonna
go
sort
of
piecemeal,
I'm,
gonna,
I'm,
gonna
nuke.
This
whole
thing
we're
gonna,
nuke,
I,
don't
know
how
much
of
this
we're
gonna
need.
You
shouldn't
need
any
of
it.
These
are
swarm
utilities,
so
we
shouldn't
need
any
of
this
code,
but
we
do
so
stop
it's
not
that
kill
everything.
A
A
C
B
A
Oh,
it's
not
safe
to
delete
view.
Usages.
Don't
tell
me
right
what
I
want
potentially
unsafe
usages.
Excuse
me
ones
in
an
example.
That's
okay!
You
know,
there's
those
are
in
examples.
That's
okay!
Okay,
raaah,
do
refactor,
okay,
all
right!
So
all
I
got
left
is
utils
here
and
I
really
should
be
able
to
delete
those.
Please
please
let
me
just
delete
them
and
please
run
and
mass
that's.
A
That's
good,
that's
good,
okay,
so
all
I
have
and
the
swarming
I
don't
need
this.
An
it
anymore
and
delete
that
all
I
have
in
this
and
the
swarming
library
is
the
one.
Silly
are
copy,
that's
being
used
somewhere
else.
I
can
I
can
refactor
that
later
and
I'm
going
to
delete
all
this
ridiculous
stuff.
A
All
right,
that's
all
we're
using
and
swarming.
Now
we
can
at
least
I
think
it's
all
reusing
and
swarming
tests
are
still
running.
These
are
all
the
tests
and
I
think
I
removed
the
long-running
swarming
test,
so
these
are
like
TM
likelihood
tests.
So
this
this
interests
me
like
this
test,
because
this
is
a
new
pic
algorithms
test.
So
this
obviously
is
testing
the
algorithm
and
if
I
can
prove
to
myself
that
all
of
the
real
functional
testing
is
happening
at
this
level.
I
would
be
very
happy
because.
A
Because
you
know
that's
a
good
sign
that
all
of
these
are
happening
here
after
I
turned
off
the
OPF
or
I'm,
not
running
the
OPF
tests.
Where's
the
OPF
tests
unit,
a
new
pic,
not
data
framework,
yeah
I
removed
the
OPF
tests
and
we're
still
getting
a
lot
of
good
tests
in
here.
Where
so,
here's
one
that's
skipped,
oh
because
it's
long,
so
that's
just
a
long-running
test.
A
A
A
C
A
Want
to
see
what
else
all
that's
passing,
what
are
we
still
waiting
for
waiting
still
waiting
on
algorithms
unit
tests,
backtracking
TM,
okay,
so
here's
another
good
good
thing.
We
can
remove
the
backtracking
TM.
We
can
remove
backtracking
TM
tests
because
we're
not
going
to
keep
it
and
the
reason
we're
not
going
to
keep
it
is
it's
not
biologically
plausible.
It
was
sort
of
a
hack
and
we're
not
using
it
anymore.
A
All
of
our
new
stuff
uses
a
more
biologically
plausible
temporal
memory,
algorithm
that
works
better
with
sensory
motor
integration,
movement,
feedback
and
stuff,
and
the
other
reason
that
I'm
not
going
to
keep.
This
is
because
it
has
ties
into
the
the
see
new
pic
bindings
data
structures.
They
threw
numpy
somehow
there
it
requires
cells
for.
A
C++
module
and
that
gets
real
up,
close
and
personal
with
numpy,
and
it
is
that
version
access
to
python
to
seven.
If
we
were
to
take
backtracking
TM
with
us,
we
would
have
to
rewrite
cells
four
or
hat
so
that
it
works
with
Python
three
numpy
and
we
don't
want
to
do.
That
would
be
a
lot
extra
since
we're
not
going
to
use
it.
We're
gonna,
take
it
out.
A
A
Like
I
said
I'm
not,
this
is
a.
This
is
an
investigation.
Okay,
so
I've
got
some
usages.
I
can
find
here.
This
is
an
investigation,
assist
I'm
not
doing
this
to
commit
it
I'm
doing
it
just
to
investigate
what
how
hard
this
is
going
to
be
before
the
meeting
tomorrow.
When
we
decide
what
we're
going
to
do.
A
C
C
A
A
A
D
D
B
B
D
B
C
C
A
A
A
B
C
A
A
C
A
C
A
A
A
A
B
A
Those
are
the
only
things
ever
moved
so
if
I
take
if
I,
if
I
put
this
back,
let's
put
it
back,
put
this
back
too
and
then
I
rerun
them.
It's
still
gonna
break
well,
obviously,
because
this
thing
these
things
don't
exist:
okay,
okay,
okay,
okay,
okay,
hold
on
none;
none!
All
right
now
do
your
now.
Do
it.
A
A
C
A
C
A
A
C
A
C
C
A
A
That's
not
gonna
be
happy.
It's
not
gonna
make
the
tests
happy,
probably
yeah.
Okay,
of
course,
TM
likelihood
test.
Anything,
that's
using
backtracking,
TM
is
getting
deleted.
So
weird.
What
do
we
got
going
on
here?
This
whole
thing:
we're
not
using
this
at
all.
Cmt
PP
backtracking,
TM
you're,
going
away.
A
No,
what
are
anything
that's
using
creatine's,
I
guess,
which
is
essentially
going
to
be
this
whole
thing:
right,
create
tea
and
every
yes,
okay,
so
there's
likelihood
test,
one
he's
going
away
likelihood
test
two
is
going
away
and
all
these
are
going
away
because
they're
just
depending
on
them-
and
that
means
I,
think
everything
is
not-
and
this
whole
test
is
testing
the
back
tracking
TM
okay.
So
there
wasn't
even
an
import
further
for
the
normal
two
primary.
A
It's
more
backtracking,
TM
stuff,
so
anybody
just
joining
me
I'm
doing
an
investigation,
an
initial
investigation
of
I'm
trying
to
figure
out
what
its
gonna
take
to
upgrade
this.
What
I
call
a
legacy?
A
So
I
am
trying
to
figure
out
how
hard
this
is
gonna,
be
so
I
spent
the
last
hour
or
so
just
trying
to
figure
that
out.
So
this
looks
like
it's
the
same
format.
It's
got
to
create
TMS
and
then
create
teams
is
used
basically
at
every
test,
where
we
out
here
test
config
all
right.
Let's
just
delete
the
create
teams
and
see
what
see
all
the
things
that
breaks.
A
A
A
And
that's
easy
enough:
unless
there
it
was
somewhere
else
too.
This
file
is
way
too
big.
Okay,
I
want
to
just
anybody
any
budding
young
programmers
don't
put
so
much
stuff
in
one
file.
If
you've
got
even
a
test
file,
if
it's
over
a
thousand
lines,
refactor
it
break
it
up.
That
needs
to
be
broken
up.
A
This
is
important.
This
TM
test
is
important,
so
I
definitely
don't
want
to
screw
anything
up.
Where
is
this
imports
at?
This
is
like
one
of
the
biggest
things
in
our
code.
You
know
the
temporal
memory
algorithm.
Alright,
so
I
can
get
rid
of
this
backtracking,
TM
and
pickle
see
pickle,
random
sis
with
all
those
imports
we
can
clean
up
now.
C
A
A
Because
we're
not
even
gonna
test
it
and
we
still
have
TM
class,
it's
not
equal
I,
don't
know
what
what
is
TM
class
just
used
somewhere,
it's
another
global
and
it's
set
to
the
backtracking
TM
initially
and
there
it
is
again.
Is
it
ever
set
to
anything
else?
No,
it's
always
the
backtracking
TM
see
it
doesn't.
That
seems
weird
I.
Don't
like
that
at
all.
A
Why
and
that's
the
TM
test,
and
it
seems
like
it's
only
testing
the
backtracking
TM,
so
we're
gonna
have
to
tease
out
there's
another
thing
that
we'd
have
to
do
to
do
this
port.
We're
gonna
have
to
tease,
apart
about
the
tests
that
are
that
are
testing
the
backtracking
TM
versus
the
normal
TM
normal
for
the
newer
one,
the
one
from
the
neuron
paper.
That's
the
TM,
we're
talking
about
the
the
algorithms
that
are
simpler,
the
HTM
school
algorithms.
That's
that's
the
normal
TM!
This
backtracking
TM
is
doing
some
other
wacky
stuff.
C
A
C
C
C
A
D
A
A
A
C
B
A
Backtracking
TM,
so
let's
remove
all
the
captain,
P
files,
all
right,
let's
find
star
dot,
cap
and
B,
all
of
them
no
well.
This
is
a
manifest.
No,
that's!
Not
what
I
wanted
and
do
for
the
command
line.
B
A
A
A
Import
utils
test:
it
seems,
like
a
that,
seems
like
just
up
running
the
test
from
the
wrong
location.
Alright,
let's
just
run
the
test.
Normally,
okay,
that's
fine!
Let's
go
to
the
top
KN
category
tests
whatever
and
the
air
is
no
module
named
cannon,
classifier,
CPP,
okay,
great!
So
now
we're
getting
to
some
real
errors,
because
I
just
deleted
all
the
captain
profiles.
A
A
D
A
B
B
A
A
A
A
A
D
A
A
Oh
important
pee.
C
D
A
C
A
A
A
A
A
C
A
D
A
A
C
A
C
A
All
right,
I
I,
think
that
I
can
tell
generally
that
this
is
gonna.
Take
a
good
amount
of
work.
I'm,
not
gonna,
say
how
many
person
months
it
might
be,
but
a
significant
amount
of
time-
okay
I'm
going
to
in
the
stream
thanks
for
watching.
If
you
did.