Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
65fe462
f (#413)
jaypantone Feb 15, 2022
68e001b
skip test with database that is to slow (#415)
enadeau Feb 15, 2022
54a75b3
point jumping strategy (#412)
christianbean Feb 15, 2022
f6c4b14
requirement and row and col placements strategy pack (#414)
christianbean Feb 15, 2022
8150b73
limit the size of obs in minimal obs call (#418)
christianbean Feb 22, 2022
e1da37c
make tracked also adds tracking int factor method (#419)
christianbean Feb 22, 2022
82cad6c
Deflation (#416)
christianbean Feb 22, 2022
0de2314
stop reinitialising tilings in the from dict method (#424)
christianbean Mar 1, 2022
8c275cc
add empty cell obs during placement (#423)
christianbean Mar 1, 2022
de27640
make tracked works with deflation and every other future tracked stra…
christianbean Mar 1, 2022
6cf95b4
Selective symmetries (#420)
christianbean Mar 1, 2022
c27a174
monotone sliding (#417)
christianbean Mar 8, 2022
9863668
a targeted cell insertion strategy (#421)
christianbean Mar 8, 2022
e4cc309
No Root Cell verification (#422)
ulfarsson Mar 8, 2022
0399050
Point corroboration (#426)
christianbean Mar 8, 2022
0ec3b0d
work from every sym (#427)
christianbean Mar 8, 2022
eafa696
allows swapping points or assumptions alone (#429)
christianbean Mar 10, 2022
c7c2af6
adding init flags (#430)
christianbean Mar 10, 2022
bf402ef
the cell reduction strategy (#428)
christianbean Mar 22, 2022
599c92e
Improving initialiser (#432)
christianbean Mar 22, 2022
1991825
ignore 1x1s and monotone cells (#433)
christianbean Mar 22, 2022
da04aa4
Point corroboration (#434)
christianbean Mar 23, 2022
374d9a4
test reqs separately (#437)
christianbean Mar 29, 2022
ec52ee3
allow reqs, and more careful point in between (#436)
christianbean Mar 29, 2022
02b3fc2
make not implemented reverse constructor for interleaving factor (#441)
enadeau Apr 7, 2022
0731232
subobstruction insertion factory and pack (#442)
christianbean Apr 19, 2022
7f899b2
kitchen_sinkify (#435)
jaypantone Apr 19, 2022
b29bb32
New collect_before decorator for some test.
enadeau Apr 20, 2022
413955e
Merge pull request #444 from PermutaTriangle/collect-before
enadeau Apr 20, 2022
7095524
Updating component assumptions (#443)
christianbean Apr 20, 2022
609a9c8
dont change type of assumption (#445)
christianbean Apr 21, 2022
d69ae21
fix from dict (#446)
christianbean Apr 27, 2022
a745c1f
ass.__class__ (#447)
christianbean Apr 28, 2022
c6c0096
only deflate/reduce when component assumptions touching cell are 1x1 …
christianbean May 3, 2022
5e4fb85
allow fusing when any assumption covers entire fuse region (#449)
christianbean May 3, 2022
c345d85
add backward map to FactorWithInterleavingStrategy (#450)
christianbean May 3, 2022
27506a6
remove AddInterleavingAssumptionsFactory (#451)
christianbean May 4, 2022
b153a51
make sure to check both cells are monotone (#457)
christianbean May 6, 2022
1f5371e
pointing strategy, unfusion strategy, disjoint fusion strategy, a dum…
christianbean May 6, 2022
1a29f91
reversible if parent has all the assumptions for interleaving (#456)
christianbean May 6, 2022
f0374ca
small bugs in interleaving factors (#458)
christianbean May 6, 2022
be81c6b
count component behave like disjoint in shift algo (#460)
christianbean May 9, 2022
6a99c28
removing the disjoint fusion strategy (#459)
christianbean May 9, 2022
71e2aa8
remove the remove_strategy defined on css (#461)
christianbean May 9, 2022
8683ea8
add assumption reversible when assumption covers whole tiling (#463)
christianbean May 10, 2022
ce22e54
a strategy for placing points of assumptions (#462)
christianbean May 10, 2022
55a6ea9
a factory for placing into rows and cols that are fusable (#464)
christianbean May 10, 2022
244371d
Remove assumptions (#465)
christianbean May 10, 2022
aa7b79c
fix json and repr encoding of interleaving factor strategy (#469)
enadeau May 12, 2022
6499428
a requirement pointing strategy (#466)
christianbean May 17, 2022
565243e
add remove constructor (#470)
christianbean May 17, 2022
af6b774
add flags to unfusion and pointing strategies (#471)
christianbean May 24, 2022
ffdd84c
All at once obstruction inferral (#467)
christianbean Jun 1, 2022
3fab1c9
full-tiling assumptions do not count against the max_assumptions cap …
jaypantone Jun 1, 2022
0b9056f
more flags for pointing (#475)
jaypantone Jun 7, 2022
1804639
adds flag to allow factorable requirement insertions, default = False…
jaypantone Jun 7, 2022
9c66582
Small bug (#480)
christianbean Jun 14, 2022
1fce660
adds default option (#481)
jaypantone Jun 15, 2022
947e19a
makes an option for whether full tiling assumptions count against cap…
jaypantone Jun 15, 2022
d43284c
one by one looks up permpal (#483)
christianbean Jun 15, 2022
4910542
reverse fusion uses divide by k (#484)
christianbean Jun 15, 2022
31fcbc5
forbid fusing if assumption not entirely on left or right (#485)
christianbean Jun 16, 2022
28a61f8
stop expanding av(012), and return invalid op for comp ver (#487)
christianbean Jun 29, 2022
8b7827f
change error to logging check (#489)
christianbean Jul 15, 2022
cc9927a
need to pass is empty to fusion is equiv now (#491)
christianbean Jul 22, 2022
9ac5814
ensure obs are minimised in point placements (#494)
christianbean Jul 27, 2022
8a230e3
Work in process getting rid of the new warnings (#497)
ulfarsson Nov 28, 2022
6fb6d38
better exception message for point jumping (#498)
enadeau Jan 12, 2023
e002bec
Fix and upgrade Github Actions (#500)
jaypantone Jan 18, 2023
0c64e38
Sliding bug (#501)
christianbean Jan 19, 2023
0e1e659
add quotes and set new CSS version in setup.py (#502)
jaypantone Jan 19, 2023
3e16919
check in decomp func of sliding (#503)
christianbean Jan 20, 2023
9649292
a new pack (#486)
christianbean Jan 24, 2023
3ac3f90
Trackedclassdb (#431)
christianbean Jan 24, 2023
943263d
one by one uses permpal for counting etc (#499)
christianbean Jan 24, 2023
76bb128
fix k0 / k_0 typo in 1x1 eqs (#505)
christianbean Jan 31, 2023
ec7bf10
fixes bug in sanity checking new 1x1 verification (#506)
jaypantone Feb 1, 2023
5368c86
make local verification basis aware (#507)
christianbean Feb 7, 2023
b401cba
implement positive reverse fusion counting (#509)
christianbean Feb 14, 2023
31c3c5c
make one-based (#512)
jaypantone Feb 22, 2023
6c9a4f3
remove unnecessary error (#514)
christianbean Feb 28, 2023
dd3d2ed
a test for duplicated mapped params in complement (#510)
christianbean Feb 28, 2023
3d6f534
fix misc bugs in kitchen sink strategies (#517)
christianbean Mar 17, 2023
92ec3a6
a strategy for forcing assumptions to be empty (#513)
christianbean Mar 20, 2023
606cb69
remove break (#518)
jaypantone Apr 25, 2023
d484c14
adds kitchen sink levels (#519)
jaypantone May 9, 2023
a91c628
Shift from spec (#520)
christianbean Jun 6, 2023
c3764f1
sets allow_factorable_insertions default to False (#521)
jaypantone Jun 6, 2023
ee89680
prepare v4.0.0
christianbean Mar 4, 2024
1e9622a
Create dependabot.yml
jaypantone Mar 13, 2025
ce25c46
Update dependabot.yml
jaypantone Mar 13, 2025
1f4c7f0
Update test.yml
jaypantone Mar 13, 2025
c730d09
Update test.yml
jaypantone Mar 13, 2025
d3b5754
Update test.yml
jaypantone Mar 13, 2025
7f69dde
Update setup.py
jaypantone Mar 13, 2025
6a52022
Update test.yml
jaypantone Mar 13, 2025
9c5aaa3
removes db verification everywhere (#524)
jaypantone Mar 13, 2025
3450f27
test version updates (#525)
jaypantone Mar 13, 2025
9a8e2a3
Update CHANGELOG.md
jaypantone Mar 13, 2025
a4b07d2
Merge branch 'master' into develop
jaypantone Mar 13, 2025
4c0fe01
Alt contains (#526)
jaypantone Jul 9, 2025
44f4cde
Modernize packaging with pyproject.toml and hatchling (#528)
jaypantone Jan 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions .github/workflows/build-and-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.13"
python-version: "3.14"
- name: install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine
pip install build twine
- name: build
run: python setup.py sdist
run: python -m build
- name: deploy
env:
TWINE_USERNAME: __token__
Expand Down
35 changes: 18 additions & 17 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ jobs:
fail-fast: false
matrix:
include:
- python: "3.13"
- python: "3.14"
toxenv: flake8
os: ubuntu-latest
- python: "3.13"
- python: "3.14"
toxenv: mypy
os: ubuntu-latest
- python: "3.13"
- python: "3.14"
toxenv: pylint
os: ubuntu-latest
- python: "3.13"
- python: "3.14"
toxenv: black
os: ubuntu-latest

Expand All @@ -34,6 +34,9 @@ jobs:
- python: "3.13"
toxenv: py313
os: ubuntu-latest
- python: "3.14"
toxenv: py314
os: ubuntu-latest

- python: "pypy-3.10"
toxenv: pypy310
Expand All @@ -42,17 +45,17 @@ jobs:
toxenv: pypy311
os: ubuntu-latest

- python: "3.13"
toxenv: py313
- python: "3.14"
toxenv: py314
os: macos-latest
- python: "3.13"
toxenv: py313
- python: "3.14"
toxenv: py314
os: windows-latest

runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install dependencies from develop branch
Expand All @@ -61,22 +64,20 @@ jobs:
echo "Installing dependencies from develop branches instead of PyPI"
python -m pip install git+https://github.com/PermutaTriangle/comb_spec_searcher.git@develop
python -m pip install git+https://github.com/PermutaTriangle/Permuta.git@develop
# Optional: Install the project in development mode to work with the new dependencies

# Install the project in development mode to work with the new dependencies
python -m pip install -e .

# Verify installed versions
echo "Checking installed comb_spec_searcher version:"
python -c "import comb_spec_searcher; print(comb_spec_searcher.__version__)"
echo "Checking installed permuta version:"
python -c "import permuta; print(permuta.__version__)"
- name: install dependencies
run: |
python -m pip install --upgrade pip tox
pip install setuptools wheel twine
run: python -m pip install --upgrade pip tox
- name: run
env:
TOXENV: ${{ matrix.toxenv }}
run: tox
- name: setup
run: python setup.py install
run: pip install -e .
6 changes: 3 additions & 3 deletions .zenodo.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"title": "tilings",
"creators": [
{
"affiliation": "Reykjavik University",
"affiliation": "Keele University",
"name": "Christian Bean"
},
{
Expand All @@ -20,10 +20,10 @@
{
"affiliation": "Marquette University",
"name": "Jay Pantone"
}
},
{
"affiliation": "Reykjavik University",
"name": "Henning Ulfarsson"
},
}
]
}
17 changes: 15 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,22 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).


## Unreleased
## [Unreleased]

## [4.0.0 - 2025-03-13]
## [4.1.0] - 2026-01-15
### Changed
- new GriddedPerm.contains_patt function checks positions first, then pattern
and as a result can lead to huge 2x - 4x speed improvement in specification
finding
- Migrated to modern pyproject.toml packaging with hatchling backend
- Minimum Python version is now 3.10 (dropped 3.8, 3.9 support)
- Updated GitHub Actions to use latest action versions (checkout@v4, setup-python@v5)
- Updated Black target version to Python 3.10

### Removed
- Removed legacy setup.py and MANIFEST.in files

## [4.0.0] - 2025-03-13
### Added
- python3.9 are deprecated, python3.10 - python3.13 are supported
- added `TileScopePack.requirement_and_row_and_col_placements`
Expand Down
32 changes: 32 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
cff-version: 1.2.0
message: "If you use this software, please cite it as below."
type: software
title: "tilings: A Python library for gridded permutations and tilings"
url: "https://github.com/PermutaTriangle/Tilings"
repository-code: "https://github.com/PermutaTriangle/Tilings"
license: BSD-3-Clause
authors:
- given-names: "Christian"
family-names: "Bean"
affiliation: "Keele University"
- given-names: "Jon Steinn"
family-names: "Eliasson"
affiliation: "Reykjavik University"
- given-names: "Tomas Ken"
family-names: "Magnusson"
- given-names: "Émile"
family-names: "Nadeau"
affiliation: "Reykjavik University"
- given-names: "Jay"
family-names: "Pantone"
affiliation: "Marquette University"
- given-names: "Henning"
family-names: "Ulfarsson"
affiliation: "Reykjavik University"
identifiers:
- type: doi
value: "10.5281/zenodo.4948344"
description: "DOI for all versions"
- type: url
value: "https://zenodo.org/badge/latestdoi/121506164"
description: "Latest Zenodo DOI"
1 change: 0 additions & 1 deletion MANIFEST.in

This file was deleted.

21 changes: 12 additions & 9 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,22 +1,25 @@
Tilings
=======

.. image:: https://travis-ci.org/PermutaTriangle/Tilings.svg?branch=master
:alt: Travis
:target: https://travis-ci.org/PermutaTriangle/Tilings
.. image:: https://coveralls.io/repos/github/PermutaTriangle/Tilings/badge.svg?branch=master
.. image:: https://github.com/PermutaTriangle/Tilings/actions/workflows/test.yml/badge.svg
:alt: Tests
:target: https://github.com/PermutaTriangle/Tilings/actions/workflows/test.yml
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
:alt: Code style: black
:target: https://github.com/psf/black
.. image:: https://img.shields.io/badge/mypy-checked-blue
:alt: mypy: checked
:target: https://mypy-lang.org/
.. image:: https://img.shields.io/coveralls/github/PermutaTriangle/Tilings.svg
:alt: Coveralls
:target: https://coveralls.io/github/PermutaTriangle/Tilings?branch=master
:target: https://coveralls.io/github/PermutaTriangle/Tilings
.. image:: https://img.shields.io/pypi/v/Tilings.svg
:alt: PyPI
:target: https://pypi.python.org/pypi/Tilings
.. image:: https://img.shields.io/pypi/l/Tilings.svg
:target: https://pypi.python.org/pypi/Tilings
.. image:: https://img.shields.io/pypi/pyversions/Tilings.svg
:target: https://pypi.python.org/pypi/Tilings
.. image:: https://requires.io/github/PermutaTriangle/Tilings/requirements.svg?branch=master
:target: https://requires.io/github/PermutaTriangle/Tilings/requirements/?branch=master
:alt: Requirements Status
.. image:: https://zenodo.org/badge/121506164.svg
:target: https://zenodo.org/badge/latestdoi/121506164

Expand Down Expand Up @@ -54,7 +57,7 @@ development mode by cloning the repository, running

.. code:: bash

./setup.py develop
pip install -e .

To verify that your installation is correct, you can try to get a specification for
`Av(12)` by running in your terminal:
Expand Down
79 changes: 73 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,80 @@
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[project]
name = "tilings"
dynamic = ["version"]
authors = [
{name = "Permuta Triangle", email = "permutatriangle@gmail.com"},
]
description = "A Python library for gridded permutations and tilings."
readme = "README.rst"
license = {text = "BSD-3-Clause"}
keywords = [
"permutation",
"perm",
"gridded",
"pattern",
"tiling",
"avoid",
"contain",
"occurrences",
"grid",
"class",
]
classifiers = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Education",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: BSD License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: Implementation :: CPython",
"Programming Language :: Python :: Implementation :: PyPy",
"Topic :: Education",
"Topic :: Scientific/Engineering :: Mathematics",
]
requires-python = ">=3.10"
dependencies = [
"comb-spec-searcher>=4.2.1",
"permuta>=2.3.0",
]

[project.urls]
Source = "https://github.com/PermutaTriangle/Tilings"
Tracker = "https://github.com/PermutaTriangle/Tilings/issues"

[project.scripts]
tilescope = "tilings.cli:main"

[tool.hatch.version]
path = "tilings/__init__.py"

[tool.hatchling.build.targets.wheel]
packages = ["tilings"]

[tool.hatchling.build.targets.sdist]
include = [
"tilings",
"tests",
"README.rst",
"LICENSE",
"CHANGELOG.md",
"CITATION.cff",
]

[tool.black]
target-version = ['py37']
target-version = ['py310']
include = '\.pyi?$'
exclude = '''

(
/(
\.eggs # exclude a few common directories in the
| \.git # root of the project
\.eggs
| \.git
| \.hg
| \.mypy_cache
| \.tox
Expand All @@ -16,7 +84,6 @@ exclude = '''
| build
| dist
)/
| foo.py # also separately exclude a file named foo.py in
# the root of the project
| foo.py
)
'''
58 changes: 0 additions & 58 deletions setup.py

This file was deleted.

Loading