Changelogs¶
0.17¶
Cli:
Accelerated
head
for all sliceable typesAdd fractional mode to
head
Added expanded arguments mode to
apply
Added column mode to
sortF
Added
gb.feats.root()
,gb.feats.tags()
Removed
gb.feats.tag()
, usegb.feats.tags()
insteadAdded predicate mode to
grep
Added
dictFields
Accelerated
groupBy
significantlyRemoved
collate()
, as there’s no use for itAccelerated
shape
, thus removingconv.lengths
andconv.toLens
asshape(0).all()
is just as good
0.16¶
Cli:
Accelerated
head
if input’s atorch.Tensor
ornp.ndarray
.Renamed
joinList
toinsert
, cause that’s more intuitiveRemoved
structural.insertRow
, asinsertRow(1, 2)
can be achieved using~insert(1, 2)
Souped up
insertColumn
Added column mode in
grep
.Added JIT compilation for
op
Added alias
parallel
andtoLens
Added accelerated mode to
cat()
Grouped
to__
clis into the moduleconv
.Removed redundant
toType
andidentity
0.15¶
Generic:
Patched
numpy.ndarray
’s__or__
method to work better with cli toolsAdded a few mathematical and physics constants in
k1lib.imports
Added
selector.ModuleSelector.cutOff()
Renamed
k1lib.integrate()
tok1lib.integral()
, to avoid conflict with existing cliAdded
sameStorage()
Cli:
Moved
k1lib.tab()
toutils.tab()
.Added
groupBy
,disassemble
,toProd
Added
mode
option totoFloat
andtoInt
Accelerated
toFloat
,toInt
,batched
andsmooth
if it’s atorch.Tensor
ornp.ndarray
0.14¶
Generic:
Added
OnProgress
callback
Cli:
Changed implementation of
rows
. Should be much more stable and perdictable than the last versionFixed
transpose
so that it works efficiently with numpy arraysFixed
splitW
so that it includes dangling elements at the endRevamped
k1lib.cli.kxml
heavilyAdded
structural.count.join()
, to join multiple count results togetherAdded aliases
toImg
,aS
Added
toRgb
andtoRgba
.Added
clipboard
and its dependency requirement.Fixed bug in
accumulate
.Removed
modifier.replace()
andmodifier.remove()
, as those can be done byop
just fine.Added seed option in
randomize
Added
window
.
0.13¶
Generic:
Added
pValue()
.captureStdout()
now returns aWrapper
Added
attrContext()
,MovingAvg
Monkey patched
animate()
Added mechanism to quickly insert a
Callback
inCallbacks.add()
Cli:
Added support for
filt(4 in op())
as extension forfilt.contains()
.Added support for
filt(op() in [1, 2, 3])
as extension forfilt.inSet()
Removed
filt.isFile()
, asfilt(os.path.isfile)
does the same thing.Added JIT basics. Just a stub feature for now.
Added multidimensional option to
joinStreams
.Added pipe input mode to
sam.cat()
.Added control flow blocking option to
inp.cmd
.Added
unpack
param toapplySerial
.Renamed
structural.splitList()
tosplitW()
Added
modifier.stagger.tv()
Replaced
k1lib.smooth()
withutils.smooth()
with a simpler impl
0.12¶
Generic:
Disallow adding new settings accidentally when using
context()
.
Cli:
Fixed
cmd
piping mechanism into each other.Added
quiet
setting, used bycmd
.Made
columns
more robust so that it can deal with missing elements and longer rows below.Added operator
-
tofilt
for extra intuitiveness.6Moved
sam.quality
tobio.quality()
, and addedcli.bio.phred
,cli.sam.header
settings.Moved setting
cli.oboFile
tocli.bio.go
, andcli.lookupImgs
tocli.bio.lookupImgs
.Added
fill
param toitem
.Optimizes higher order operations quite a bit, and added setting
cli.atomic
.Renamed
init.manyToManySpecific
toinit.mtmS
, and added methodf()
.Added
fill()
andwrap()
totranspose()
.Revamped how
cmd
works, allowed real time output yielding, added bytes mode and option on how to return stdout and stderr.
0.11¶
DL:
Added
Settings
, and the centralizedsettings
for the entire library. As a consequence, movedk1lib.cli.cliSettings
tosettings
under name “cli”.Removed “pause” concept from
Callback
.Patched
torch.Tensor.positionalEncode()
, and removed procedural version (k1lib.positionalEncode()
).Added
MultiheadAttention
.
Cli:
Added multidimensional mode to
transpose
.Changed param position of
deref
so that it’s more convenient.Moved
inp.toPIL
toutils.toPIL
, to be more consistent.Added
nb
. As a consequence, removednbCells()
andexecuteNb()
.Added temporary file and append features to
file()
.Added immediate resolve option to
cmd
.Added
N
option (max sections) and changedtill()
mechanics ingrep
. Also addedsep
option and as a consequence, removedgrepToTable
.
0.10¶
DL:
Added
nbCells()
,timer()
Changed
Absorber
methods so that it won’t use special words likeint
,float
,len
,str
and addedab_contains()
andab_fastF()
.Revamped lots of Callbacks docs
Renamed
CaptureStdout
tocaptureStdout
, to match context manager’s styles.
Cli:
Added
utilization
parameter toapplyMp
.Added
fastF()
Added tensor mode to
mask
.Added
filt
andapply
modes with columns totrace
.Made
deref
so that it ignores dictionaries.Added some compatibility with numpy arrays across clis.
Added
cacheLimit
parameter toapply
and as a consequence, removedapplyCached
.Added
toType
andapplyTh
.Added
bs
parameter toapplyMp
and as a consequence, removedapplyMpBatched()
.
0.9¶
DL:
Added
scaleSvg()
.Added
prefix
option toAutoIncrement
.
Cli:
Added
kwargs
argument tomodifier.applyMpBatched()
.Added alias
iden
.Added
trace()
mechanism, with accompanying tutorial.Remove
shape
’s tensor special caseAdded
applySerial
.Added
inf
andcontext
tocliSettings
.Fixed bug where
"abc" | deref()
will actually split the string into characters.Terminates pool in
applyMp
if is keyboard interrupted, and in general made it much more robust.Stops
deref
early if encounteredyieldSentinel
Optimizes
op
even further, thus removingisValue()
, asfilt(op() == value)
does the same thing.
0.8¶
DL:
Exposed
k1lib.viz
automatically, and improvemask()
so that it smoothes out highlighted regions.Added
perlin3d()
.Monkey patched
march()
,surface()
,k3d()
,loglinspace()
,point()
,line()
,plane()
,aspect()
.Renamed
append()
toadd()
.Removed
with-
semantics forCallback()
. UseCbs
instead.Changed
__contains__()
so that it handles*
differently.
Cli:
0.7¶
DL:
Added
metab
as extra metadata from dataloaders toLearner
in the core training loop and modifiedRecorder
to return it if available.Added
n
option toAutoIncrement
.Added
mask()
.Removed
k1lib.stats()
, replaced it withtorch.Tensor.stats()
directlyAdded
torch.Tensor.hasInfs()
Made
LossNLLCross
integrates withAccF
instead.Made
AccF
integrates withConfusionMatrix
.Made
ConfusionMatrix
resilient against nans and infs, and fixed norm strategy (tensor rows divide by max rows, instead of tensor columns divide by max rows, like before).
Cli:
Added
mask
,unsqueeze()
.Made
op
compatible with lots of other cli tools, so you can do stuff likefilt(op() > 3, 1)
.Removed
split
, asop().split().all() | joinStreams()
does the same thing. This is longer, so I kinda want to put it back in, but the name is incredibly oxymoronic.Removed
listToTable()
and its aliastableFromList()
, as they are too simple, and the newunsqueeze(1)
does the same thing.Removed
args
option inapplyMp
, as it feels clunky.Removed
cats
ascat().all()
does the same job.Sped up
op
to have roughly same performance asapply
. As a consequence, removed [lstrip
,rstrip
,strip
,upper
,lower
] clis as stuff likeop().upper().all()
does the same and I want to simplify the collection of cli tools.Completely removed
k1lib.cli.ctx
module, as the performance sacrifices are too much, and it doesn’t add a lot of useful features.Renamed
utils.to1Str
tojoin
as that is more intuitive.Removed
structural.table
, asop().split().all()
does the same thing
0.6¶
DL:
Added __module__ impersonation for
wrapMod
.Renamed
LossLambda
toLossF
Renamed
torch.nn.Module.preserveDevice()
totorch.nn.Module.deviceContext()
and add preserve buffers capability.Added
torch.nn.Module.gradContext()
.
k1lib.selector.ModuleSelector
:
Renamed
filter()
topreprocess()
.Removed
selected()
, as__call__()
does the same thing and is more intuitiveAdded
prop
option tonamed_children()
andchildren()
.Removed callback
Frozen
asfreeze()
andunfreeze()
does the job and is much more robust.Added
freeze()
andunfreeze()
Removed
copy()
, as you can just grab another selector straight from the model real quick.Removed
parameters()
, as you can always access the associatedtorch.nn.Module
inside and get params from there.
Cli:
0.5¶
DL:
Renamed
k1lib.format
tok1lib.fmt
, and exposed it automatically.Added
sizeOf()
Exposed
selector
automatically.Deleted
k1lib.website
Fixed infinity elements in
landscape.Landscape
’s plots.
Cli:
Added chained mode to
item
Fixed ignoreTensor mechanic in
deref
Added prefetch mode in
applyMp
Added
applyMpBatched
that executes lots of transformations in a single job.Added
clearPools()
andpools()
.Added
activeSamples
.Removed aliases
splitColumns
andjoinColumns
.Removed
stitch
, asto1Str().all()
does the same thing.
0.4¶
This update moves things around a lot. The actual coding experience stays the same, but a lot of links < 0.4 will be broken in 0.4 docs. Go to 0.3 docs if you wish to follow links.
Molecule (k1lib.mo
):
Added close coulomb force calculations to simulator to make it more realistic (cyclohexane chair config possible now!)
Added optional Hydrogen viewing to various functions in
mo
Fixed parsing bug where it doesn’t recognize “3-methyl” group in “3-methylpentane”.
DL:
Don’t let
AutoIncrement
’svalue
property to auto increment internal value.Removed
CyclicRandomSampler
, asrange(n) | repeatFrom() | randomize(n)`
does the same thing.Removed
FunctionDataset
, added simplerFunctionData
as replacement.Removed
DataLoader
,Data
andDatasetWithSampler
, as they’re complex and obsolete.Added
tfImg()
,tfFloat()
,analyzeFloat()
Monkey-patched
torch.nn.Module
to have piping capabilities.Renamed
k1lib.data
tok1lib.kdata
, and exposed it automatically inimports
.Renamed
k1lib.nn
tok1lib.knn
, and exposed it automatically.
Bioinfo cli:
Renamed
k1lib.bioinfo.cli
tok1lib.cli
Added
stagger()
as the new interface for dataloaders.Added
intercept
,toPIL
.Added PIL conversion mode to
utils.toTensor
Added Tensor shape mode in
utils.shape
.Added
others
module, withcrissCross()
Added Tensor mode to
toSum
,toAvg
,toMin
,toMax
andoneToMany
.Added alias
toMean
.Added dtype choice to
toTensor
.
0.3¶
Background stuff:
Added mo tutorial
DL:
Added
FAnim()
Added
mo
for stuff related to molecular dynamicsAdded
graph()
,digraph()
,__call__()
Huge revamp of
schedule
to make it more intuitive. There’s only 1 main schedule object now:Fn
.Added
k1lib.wraps()
,k1lib.Object.__delitem__()
,k1lib.Range.fromRange()
Added
k1lib.Every
Bioinfo cli:
Removed
notIn
, asinSet
does the job just as wellIncluded cli import command in
imports
by defaultModified
toFloat()
andmodifier.toInt()
so they can force weird values to 0.Moved existing
toDict
totoDictF
, and created a newtoDict
.
0.2¶
Pretty minor update. I just want to push this out as soon as possible
Background stuff:
Changed versioning system so that it makes more sense
Added osic and mp tutorials
Added more speed analysis in the cli tutorial
Bioinfo cli:
Removed
dirs
andfiles
parameters inls
, asisFile
is good enoughDisable module
ctx
by default, to improve performanceReplaced
nonEmptyStream
toempty
0.1.13¶
Background stuff:
Removed walrus operator library-wide, so that it can be used with Python < 3.8
Bioinfo cli:
Added
breakIf
,isFile
Replaced
infiniteF
withrepeatF
Replaced
infiniteFrom
withrepeatFrom
Replaced
dereference
withderef
Replaced
ctx.dereference
withctx.deref
Modified
applyMp
to usedill
to deserialize everythingModified
to1Str
so that it returns a string, instead of yieldingModified
toStr
so that it can accept an optional columnModified
splitList
so that it accepts *argsRemoved
applySingle
, but retainapplyS
DL:
Added class
CaptureStdout
Patched
torch.Tensor
withcrissCross()
,histBounds()
andhistScaled()
0.1.12¶
Background stuff:
Removed docs’s generated
fonts
folder, as it takes 8MB and isn’t even used. Should now be sustainable for 100 versions on github pages.
Bioinfo cli:
Removed wrapping
__ror__
operator if__init__
is not defined, to make things performant.Added speed analysis in the cli tutorial.
Added
init.BaseCli.__call__()
,consume
,ctx.ctx()
,ctx.f
,peekF
,expandE
,utils.dereference.__invert__()
,unique
,notIn
,sortF
,toMax
,toMin
,union
,ls()
,instanceOf()
,randomize
Removed
ctx.identity
Added shortcuts to
ctx.setC()
andctx.getC()
Made
headerIdx()
context-awarePut
ctx.Promise
dereferencing atinit.BaseCli.__ror__()
, instead of dynamic patching atk1lib.bioinfo.cli
construction timeGet rid of
stdout
style inconsistencies. Previously, it looks like[1, 2] | stdout
, now it looks like[1, 2] | stdout()
.Added multiprocessing capabilities with
applyMp
Added
maxDepth
option fordereference
Added
includeLast
option tobatched
Added
float("inf")
option tobs
parameter ofbatched
Fixed
permute
to be able to take in generator for rows.Fixed
stdout
to be able to display non-iterable inputsFixed
dereference
so that it will handle poking errorsFixed
count
so that it can deal with list. Used to throw unhashable type: ‘list’Added more flexibility with
toFloat()
,toInt()
andsort
DL:
Added classes
AutoIncrement
,Wrapper
Added functions
positionalEncode()
,debounce()
Fixed
executeNb
’s_globals
doc-backref problem. Also clears plot automatically after executing a cell now.
0.1.11¶
Background stuff:
Added testing section for unit tests (simple assert statements inside the notebooks)
Bioinfo cli:
Added numpy/torch checks to
dereference
Renamed
sample
topeek
Added
infiniteFrom
,joinStreamsRandom
,batched
,collate
,splitList
Added
infiniteF
Added
toTensor
Replaced
infinite
in favor ofrepeat
Updated all cli tools to use
super().__init__()
Added
ctx
module, withPromise
,enum
,identity
classes, andgetC()
,setC()
methods
DL:
Added
k1lib.data.CyclicRandomSampler
andk1lib.data.DatasetWithSampler
Added highlight feature in
callbacks.Callbacks.checkpointGraph()
Added
k1lib.viz.Carousel.pop()
,k1lib.viz.Carousel.__getitem__()
Added
k1lib.Learner.sample()
Disallow
k1lib.executeNb()
to execute lines that starts with “!”, also removed parametercatchErrors
, as it’s quite uselessAdded
k1lib.Object()
0.1.10¶
Background stuff:
Added notebook regression tests
Added tutorials automated building tool
Added
k1lib.ignoreWarnings
Tutorials part moved to official docs (rather than .md files on github)
Added covid tutorial
Bioinfo cli:
Reintroduced
permute
, asrows
is inadequateAdded
lengths
,applySingle
Exposed
serial
,oneToMany
,manyToMany
, andmanyToManySpecific
DL:
Added
confusionMatrix.ConfusionMatrix
andk1lib.viz.confusionMatrix()
Modified
k1lib.Object
to allow settinggetdoc
fieldAdded
k1lib.viz.Carousel.saveBytes()
,k1lib.viz.Carousel.saveFile()
,k1lib.viz.Carousel.saveGraphviz()
, and handle different image formats much better now
0.1.9¶
Bioinfo cli:
Added
k1lib.Domain
classAdded
__invert__
option forrows
andcolumns
by incorporatingk1lib.Domain
Sped up
rows
significantlyRemoved cli tool
every
asrows
is good enoughAdded
__invert__
option forhead
. As a result, removednhead
Added
till()
mechanism togrep
cli toolAdded
gb
cli module to deal with genbank file formatAdded
tableFromList()
as alias oflistToTable()
Renamed
avg
totoAvg
Added
toSum
DL:
Added Callbacks tab completion to
k1lib.Learner
andCallbacks
Refactored
lossLandscape.LossLandscape
tolandscape.Landscape
that can be used by any other callbacks, right now it’sLoss
andAccuracy
Added
callbacks.Callback.pause()
to help withAccuracy
’sLandscape
0.1.8¶
Fixed installation bug where readme.md would be absent, and setup.py won’t work at all.
Bioinfo cli:
Huge revamp of how tables are treated. Before, row elements are in a single string, separated by a delimiter. Now each row is a full fledged list
Added
grepToTable
,joinList
,contains
,table
,stitch
,listToTable
,insertColumn
cli toolsRemoved
joinRows
but still keepjoinStreams
as “joinRows” is not really obviousRemoved
permute
ascolumns
is pretty much identicalRenamed
inside
toinSet
Cut out nested functionality from
grep
togrepToTable
0.1.7¶
Interface with external modules:
Swapped out
register_backward_hook
withregister_full_backward_hook()
inHookModule
callbackAdded
torch.nn.Module.preserveDevice()
context manager
Callbacks:
Changed
Callbacks.suspend()
to take in names onlyAdded
Callbacks.suspendClasses()
to take in classesChanged
Callbacks.suspendEvaluation()
toCallbacks.suspendEval()
, also added functionality for white and black listsRipped out complex
Callback.__getattr__()
mechanism (that automatically searches the parent learner for missing attributes) to improve speedAdded
k1lib.callbacks.core
callbacksCoreNormal
andCoreRNN
Added more plot decorators for
MemoryProfiler
, including backward-forward separator with their textChanged
LossLandscape
callback so that it follows the common flow structure. Before, it implements a whole newcbs(...)
schema that essentially duplicated the loop inside ofk1lib.Learner
Learner:
Implemented grace stop handling for
Learner
. Before, if someone throwsCancelRunException
while executing a batch, then it will immediately jump to the end of the run. Changed it so that it will be caught in the batch loop, execute checkpointscancelBatch
andendBatch
and rethrow it. Same thing withCancelEpochException
Moved loss function from being a core functionality inside
Learner
to an external callback, so that adapting multiple loss functions are possibleAdded
Learner.__call__()
Bioinfo cli:
Added
isValue
,intersection
,AA_
,infinite
,dereference
cli toolsModified
cat
to be able to take in file name by pipeAdded new joining operator “+” between
init.BaseCli
Style changes:
Changed
Callbacks.learner
toCallbacks.l
Changed
Callback.learner
toCallbacks.l
Removed
k1lib.eqn
fromk1lib.imports
’s namespace
0.1.6¶
I don’t really keep track of things 0.1.6 and before, so nothing here really.