Tilings

Latest version: v3.1.0

Safety actively analyzes 613603 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 3

3.1.0

Added
- `Tiling.remove_requirement` method that removes a requirement from a tiling.
- `RemoveRequirementFactory` which adds the rules where we insert a requirement to a
tiling after we first remove that requirement. This is added to
`LocallyFactorableVerificationStrategy.pack`.
- The tiling initialiser will now add factors of obstructions if it is implied by
multiple different obs and one requirement list of size possibly greater than one.
Previously it was only doing the case where a single ob's factor is implied by a
requirement.

Fixed
- `ForgetTrackedSearcher` was not retroactively applying strategies that had a `basis`.
- Bug with sliding symmetries
- The tiling initialiser was not removing duplicate/redundant requirements.

Changed
- One by one verification will now only verify subclasses of the given basis.
- Verification strategies no longer ignore parent
- `TrackedSearcher` now uses a `TrackedQueue` and is able to work with all packs
and new future strategies.

Deprecated
- Python 3.7 is no longer supported

3.0.0

Added
- Rearrange assumption strategy
- `TrackingAssumption.from_cell` method
- Counting for reverse fusion
- `FusionParallelSpecFinder`, `FusionIsomorphism` and `FusionBijection` subclasses
to handle bijection involving fusion and assumption strategies.
- a `insertion_point_row_and_col_placements` pack in `TileScopePack`
- `TrackedSearcher` and `ForgetTrackedSearcher` that prioritise expanding classes
with assumptions when the underlying tiling was expanded
- `TileScopePack.cell_insertions` which only does cell insertion and verification

Changed
- Updated to use comb_spec_searcher 4.0.0
- Using `strategy_pack.make_fusion` or `strategy_pack.make_tracked` now automatically
adds `RearrangeAssumptionFactory` with `apply_first=True` if `tracked=True`
- Moved several local function in `RearrangeConstructor` outward to make it pickleable
- Fixed isolated fusion bug
- Fusion is now a one-way strategy.
- Added length to name for `all_the_strategies` pack
- pack for locally factorable now account for the basis.

Fixed
- Removed a redundant `Tiling.is_empty` check in the fusion algorithm.
- Ensure `is_atom` returns False for the empty tiling

Deprecated
- Python 3.6 is no longer supported

2.5.0

Added
- Added sliding strategy
- 'GuidedSearcher' class which will search for specification with a specific set of
underlying tilings. Includes methods 'from_spec' and 'from_uri' which creates a
'GuidedSearcher' instance.
- Creates a new `LimitedAssumptionTileScope` that allows you to set a maximum number
of assumptions allowable on any tiling

Changed
- Updated comb_spec_searcher version for faster counting
- Added a point placement strategy to partial row and col placement packs.
- `TileScopePack.make_tracked` return a new pack with tracked fusion instead of
only adding the `AddAssumptionFactory` to the pack
- `make_fusion` and `make_interleaving` make the pack name a little more descriptive
- Updated short obstruction verification to take a length argument

2.4.1

Added
- `to_tex` for gridded perms.
- `to_tikz` for gridded perms.
- `to_svg` for gridded perms.
- `to_gui` for tilings.
- Mappings for gridded perms: `column_reverse`, `row_complement`,
`permute_columns`, `permute_rows` and `apply_perm_map_to_cell`.
- Mappings for tilings: `column_reverse`, `row_complement`,
`permute_columns`, `permute_rows`, `apply_perm_map_to_cell`.
- `guess_from_gridded_perms` to guess tiling T from gridded perms in Grid(T).
- `enmerate_gp_up_to` counts gridded perms of length 0, 1, 2, ... up to a max length.
- Can sample and generate objects from fusion specifications.

Fixed
- Anti-diagonal symmetry backward map was fixed.

2.3.1

Fixed
- Dependency issue when installing

2.3.0

Added
- introduced isolation levels to the fusion strategy
- added the `one_cell_only` option to `CellInsertionFactory`
- `remove_components_from_assumptions` method to `Tiling`
- `DetectComponentsStrategy` which removes cells from assumptions
which are actual components. This replaces the need for the
`SplittingStrategy` in component fusion packs.
- added equation generators to `FusionStrategy` for the case where one or both
sides are positive
- added a `to_html_representation` method to `Tiling`
- `SubclassVerificationFactory` and the corresponding strategy
- `is_subclass` method to `Tiling`
- added `point_and_row_and_col_placements` strategy
- `ShortObstructionVerificationStrategy`
- using Github Actions for testing and deployment

Changed
- insertion packs now use the `one_cell_only` option, and no longer use
`RequirementCorroborationFactory`
- the `get_eq_symbol` and `get_op_symbol` are moved to `Strategy` rather than
`Constructor`
- the `GriddedPermsOnTiling` algorithm was changed to build from minimal
gridded perms in a breadth first manner. This is also include an option to
limit the number of points placed on the minimal gridded perms.
- new default behavior of `RequirementInsertionFactory` is to only insert requirements
on tilings that don't already have any
- converted the expansion strategies in several strategy packs to be a single set
- requirement corroboration is only enabled when requirements of length > 1 are placed
- A gridded permutation can now be built from any iterable of integer, not only
from permutation.

Fixed
- untracked constructors raise `NotImplementedError`
- forbid fusing a region containing a `TrackingAssumption` and a
`ComponentAssumption`
- a tiling factors if a `ComponentAssumption` if the components of the region
split into the factors
- only fuse non-empty regions to avoid creating unintentional rules a -> b
where a and b are equivalent
- remove duplicate assumptions in the `AddAssumptionsStrategy`
- `Tiling.from_dict` will make a `Tiling` with no assumptions if the
`assumptions` key is not in the dictionary.
- a factor with interleaving strategy has `inferrable=True`
- a factor with interleaving strategy return a normal factor strategy when
there's no interleaving going on.
- removed the length argument to the `insertion_point_placements` pack which
was not implemented, and thus raising an error.
- Bug that occurred when factoring the empty tiling
- fixed that the `partial` flag was ignored in `point_placements`
- isolation levels were not being passed to component fusion
- expanding a symmetry of 132 with both length 2 requirements

Page 1 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.