Drop Python 2 support.
Drop Python 3.5, 3.6, and 3.7 support and tag Python 3.9, 3.10, and 3.11 support.
Add shape
property to Context```and ``Definition
returning a named tuple of
(len(objects), len(properties))
(PR Tomáš Mikula).
Add fill_ratio
property to Context```and ``Definition
(PR Tomáš Mikula).
Add make_object_label
and make_property_label
keyword arguments to
Lattice.graphviz()
allowing to override the formatting of object and
property labels (e.g. make_object_labels=', '.join
objects labels as
comma-separated object lists.
Tag Python 3.8 support.
Make the frmat
argument (e.g. 'table'
, 'cxt'
, 'csv'
) for
reading/writing Context
objects case-insensitive (mirroring
case-insensitivity of format inference from filename suffixes).
Add Context.tojson(path_or_fileonj)
and Context.fromjson(path_or_fileonj)
for long term storage format serialized as json. This custom format can include
the lattice structure information so that e.g. big lattices that are expensive to
compute can be stored and loaded without the need to re-calculate the lattice.
Add Context.todict()
and Context.fromdict()
for custom format as plain
Python dict
. Can be (de)serialized with other tools such as pickle,
pprint.pprint()
+ ast.literal_eval()
, yaml, toml, xml, a database,
etc.
Drop Python 3.4 support.
Add .crc32()
-method to Context
and Definition
returning the
hex-encoded crc32 of their context table string.
Include crc32 in the __repr__
of context objects.
Add recipe for context from pandas.DataFrame
to docs.
Add load()
inferring the format form the file suffix.
Tag Python 3.7 support, add simple tox config.
Fix collections.MutableSet PendingDeprecationWarning.
Increase API docs coverage.
Use compatible release version specifiers (bump graphviz
to ~=0.7).
Drop Python 3.3 support.
Include LICENSE file in wheel.
Port most tests from nose/unittest to pytest, add Travis CI and coveralls.
Update package meta data, tag python 3.6 support.
Let the .graphviz()
-method pass kwargs
to the returned graph (e.g. format='png'
).
Relax optional graphivz
dependency to < 1.0.
Added extended Sphinx-based documentation.
Added move_object()
and move_property()
to definitions.
The take()
-method of definitions now supports skipping all objects or properties
when called with empty iterables (default None means include all).
Simplified __getitem__
examples.
Fixed a possible encoding issue with .tofile()
.
Visualize more examples.
Added tests for formats dump/load file roundtrips.
Changed context __eq__
test with non-contexts from TypeError
to NotImplemented
.
Fixed non-working augmented assignment operators on definitions. Simplified definition implementation.
Added context definition objects, allowing interactive building, modification, and combination of context creation arguments.
Added include_unary
option to logical connectives calculation.
Made derivation code more explicit. Subset test replaced by inlined
implementation using only bitwise_and
.
Changed context ._lattice()
to a generator.
Fixed failure to handle contexts with single object/property.
Improved context/lattice division of labour: context now computes all concepts with their covering relation, while lattice only builds/decorates the object- based representation.
Improved context and bitset interface used by lattice (reduce_and()
, reduce_or()
).
Added doubleprime()
-method to extents and intents.
Added raw
option to intension()
, extension()
, and neighbors()
method of context.
Added EXAMPLE
context for repl experiments.
Context relation now omits orthogonal pairs in __str__()
.
Fixed CSV export with Python 3.3+.
Added Python 3.3+ support.
Set default UTF-8 encoding in context .tofile()
.
Switch setup.py
dependencies to version ranges.
Added make_context()
.
Improved documentation.
Added .orthogonal_to()
.
Changed attributes to return a generator instead of a list.
Improved doctests.
Upset and downset of concept object now are iterable-returning methods instead of properties (backwards incompatible).
Changed concept object minimal generating properties to be computed on request instead of being precomputed during lattice build; changed minimal and attributes from properties to methods (backwards incompatible).
Improved unicode support.
Changed pickling of lattice and concepts.
Changed ordering of downset
and lower_neighbors
to longlex.
Add context file 'csv'
format.
Added newline normalization to context file loading.
Update bitset
dependency to 0.5 (better neighbors).
Backwards incompatible: removed underscore from (from|to)_(string|file) method names.
Update graphviz
interface dependency to 0.2 (UTF-8 support) with changed api.
Support empty iterables in Lattice.join()
and .meet()
.
Simplified graphviz
quoting.
Improved visualization.
Added loading and dumping of contexts and include some example cxt files.
Make context objects pickleable.
Context and lattice methods no more implicitly split string arguments.
Switch to standalone graphviz
interface implementation.
Refine packaging info.
Account for bitsets
internal api change.
Improve documentation.
Switch to standalone bitsets
implementation.
First public release.