Changelogs

0.5

DL:

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() and pools().

  • Added bytes reading and writing to cat file.

  • Added activeSamples.

  • Removed aliases splitColumns and joinColumns.

  • Removed stitch, as to1Str().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’s value property to auto increment internal value.

  • Removed CyclicRandomSampler, as range(n) | repeatFrom() | randomize(n)` does the same thing.

  • Removed FunctionDataset, added simpler FunctionData as replacement.

  • Removed DataLoader, Data and DatasetWithSampler, as they’re complex and obsolete.

  • Added tfImg(), tfFloat(), analyzeFloat()

  • Monkey-patched torch.nn.Module to have piping capabilities.

  • Renamed k1lib.data to k1lib.kdata, and exposed it automatically in imports.

  • Renamed k1lib.nn to k1lib.knn, and exposed it automatically.

Bioinfo cli:

0.3

Background stuff:

  • Added mo tutorial

DL:

Bioinfo cli:

  • Removed notIn, as inSet does the job just as well

  • Included cli import command in imports by default

  • Modified toFloat() and modifier.toInt() so they can force weird values to 0.

  • Moved existing toDict to toDictF, and created a new toDict.

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 and files parameters in ls, as isFile is good enough

  • Disable module ctx by default, to improve performance

  • Replaced nonEmptyStream to empty

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 with repeatF

  • Replaced infiniteFrom with repeatFrom

  • Replaced dereference with deref

  • Replaced ctx.dereference with ctx.deref

  • Modified applyMp to use dill to deserialize everything

  • Modified to1Str so that it returns a string, instead of yielding

  • Modified toStr so that it can accept an optional column

  • Modified splitList so that it accepts *args

  • Removed applySingle, but retain applyS

DL:

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() and ctx.getC()

  • Made headerIdx() context-aware

  • Put ctx.Promise dereferencing at init.BaseCli.__ror__(), instead of dynamic patching at k1lib.bioinfo.cli construction time

  • Get 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 for dereference

  • Added includeLast option to batched

  • Added float("inf") option to bs parameter of batched

  • Fixed permute to be able to take in generator for rows.

  • Fixed stdout to be able to display non-iterable inputs

  • Fixed dereference so that it will handle poking errors

  • Fixed count so that it can deal with list. Used to throw unhashable type: ‘list’

  • Added more flexibility with toFloat(), toInt() and sort

DL:

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 to peek

  • Added infiniteFrom, joinStreamsRandom, batched, collate, splitList

  • Added infiniteF

  • Added toTensor

  • Replaced infinite in favor of repeat

  • Updated all cli tools to use super().__init__()

  • Added ctx module, with Promise, enum, identity classes, and getC(), setC() methods

DL:

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, as rows is inadequate

  • Added lengths, applySingle

  • Exposed serial, oneToMany, manyToMany, and manyToManySpecific

DL:

0.1.9

Bioinfo cli:

  • Added k1lib.Domain class

  • Added __invert__ option for rows and columns by incorporating k1lib.Domain

  • Sped up rows significantly

  • Removed cli tool every as rows is good enough

  • Added __invert__ option for head. As a result, removed nhead

  • Added till() mechanism to grep cli tool

  • Added gb cli module to deal with genbank file format

  • Added tableFromList() as alias of listToTable()

  • Renamed avg to toAvg

  • Added toSum

DL:

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 tools

  • Removed joinRows but still keep joinStreams as “joinRows” is not really obvious

  • Removed permute as columns is pretty much identical

  • Renamed inside to inSet

  • Cut out nested functionality from grep to grepToTable

0.1.7

Interface with external modules:

Callbacks:

  • Changed Callbacks.suspend() to take in names only

  • Added Callbacks.suspendClasses() to take in classes

  • Changed Callbacks.suspendEvaluation() to Callbacks.suspendEval(), also added functionality for white and black lists

  • Ripped out complex Callback.__getattr__() mechanism (that automatically searches the parent learner for missing attributes) to improve speed

  • Added k1lib.callbacks.core callbacks CoreNormal and CoreRNN

  • Added more plot decorators for MemoryProfiler, including backward-forward separator with their text

  • Changed LossLandscape callback so that it follows the common flow structure. Before, it implements a whole new cbs(...) schema that essentially duplicated the loop inside of k1lib.Learner

Learner:

  • Implemented grace stop handling for Learner. Before, if someone throws CancelRunException 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 checkpoints cancelBatch and endBatch and rethrow it. Same thing with CancelEpochException

  • Moved loss function from being a core functionality inside Learner to an external callback, so that adapting multiple loss functions are possible

  • Added Learner.__call__()

Bioinfo cli:

  • Added isValue, intersection, AA_, infinite, dereference cli tools

  • Modified cat to be able to take in file name by pipe

  • Added new joining operator “+” between init.BaseCli

Style changes:

0.1.6

I don’t really keep track of things 0.1.6 and before, so nothing here really.