Tilings

Latest version: v4.0.0

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

Scan your dependencies

Page 1 of 3

4.0.0

Added
- python3.9 are deprecated, python3.10 - python3.13 are supported
- added `TileScopePack.requirement_and_row_and_col_placements`
- `AssumptionAndPointJumpingFactory` which adds rules where requirements and/or
assumptions are swapped around a fusable row or column.
- `PointJumpingFactory` which adds rules where requirements and assumptions can be
swapped around a fusable row or column.
- `MonotoneSlidingFactory` that creates rules that swaps neighbouring cells if they
are 'monotone' fusable, i.e., they are a generalized fusion with a monotone local
extra obstruction.
- `DeflationFactory` which adds rules where cells can be deflated into increasing or
decreasing cells as obstructions can't occur across the sum/skew components in that
cell.
- `CellReductionFactory` which changes a cell to monotone if at most one point of
any crossing gp touches that cell.
- `PositiveCorroborationFactory` that inserts into cells which if positive makes
another cell empty. Also, the `PointCorroborationFactory`, which does this for
point or empty cells which is added to most packs.
- `TargetedCellInsertionFactory` which inserts factors of gridded perms if it can
lead to factoring out a verified sub tiling.
- `BasisPatternInsertionFactory` which inserts permutations which are contained in
every pattern in the basis
- `ComponentVerificationStrategy` which is added to component fusion packs.
- `ComponentToPointAssumptionStrategy` that changes component assumptions to point
assumptions. These strategies are yielded in `RearrangeAssumptionFactory`.
- `StrategyPack.kitchen_sinkify` to add many experimental strategies to the pack
- `SubobstructionInsertionFactory` that inserts subobstructions and the pack
`TileScopePack.subobstruction_placements` which uses it.
- `FactorWithInterleavingStrategy.backward_map` so you can now generate permutation
from specifications using interleaving factors.
- `DummyStrategy` that gives a quick template for making strategies.
- `PointingStrategy`, `AssumptionPointingFactory` and `RequirementPointingFactory`
that place points directionless in non-point cells. This are a non-productive
strategy so should be used with `RuleDBForest`.
- `UnfusionFactory` that unfuses either all the rows or columns. Also non-productive.
- `FusableRowAndColumnPlacementFactory` places fusable rows and columns.
- `TrackedClassDB` used by `TrackedSearcher`
- counting for `GeneralizedSlidingStrategy` of rows (i.e., `rotate=True`)

Fixed
- `Factor` was not factoring correctly with respect to component assumptions.
- `ComponentAssumption` are flipped when taking symmetries
- `Tiling.get_minimum_value` fixed for component assumptions
- `RearrangeAssumptionFactory` will ignore component assumptions
- `GriddedPermReduction.minimal_reqs` was removing requirements if they
were duplicates.
- `RequirementPlacement` algorithm didn't minimise obstructions correctly when
placing size 2 or higher gridded perms.
- added missing condition in `MonotoneSlidingFactory` for consecutive
values. Previous rules failing this condition will now raise
`StrategyDoesNotApply` if it fails this condition.
- `LocalVerificationStrategy` needs to be a `BasisAwareVerificationStrategy`
- `PointJumping` maps component assumption to component assumptions.
- `Tiling.all_symmetries` had a premature break statement that was removed
- `shift_from_spec` method would previously fail if any tiling had two or
more interleaving cells.

Changed
- `TileScopePack.make_tracked` will add the appropriate tracking methods for
interleaving factors and make strategies tracked if it can be.
- The `GriddedPermReduction` limits the size of obstructions it tries to infer in
the `minimal_obs` method to the size of the largest obstruction already on the
tiling.
- The `SymmetriesFactory` takes a basis and will not return any symmetries where
any of the patterns of the obstruction are not subpatterns of some basis element.
If no basis is given, all symmetries are returned.
- `RequirementPlacement` adds empty cells when placing a point cell. This saves
some inferral in partial placements.
- Don't reinitialise in the `Tiling.from_dict` method.
- `GuidedSearcher` expands every symmetry
- `TileScopePack.pattern_placements` factors as an initial strategy.
- `is_component` method of assumptions updated to consider cell decomposition
- `AddAssumptionsStrategy.is_reverible` is now True when the assumption covers the
whole tiling.
- The default behavior for `RequirementInsertion` is to allow insertion of factorable
requirements
- `OneByOneVerificationStrategy` will look up permpal.com to find the generating
functions and min polys, and also use permpal specs for counting, sampling and
generating objects.
- The `kitchen_sinkify` function on `TileScopePack` now takes a level between 1 and 5
as input, which is used to determine how crazy the added strategies should be.

Removed
- `AddInterleavingAssumptionsFactory`. The factor strategy now adds the relevant
assumptions where necessary directly, lowering the number of CVs needed.

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

Page 1 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.