CHANGES
=======

.. towncrier release notes start

0.6.3 (2024-10-14)
==================

Breaking changes
----------------

- Drop Support for Python 3.8 (Already Reached EOL)


Features
--------

- Support Python 3.13


Miscellaneus
------------

- `#436 <https://https://github.com/fizyk/pyramid_basemodel/issues/436>`_


0.6.1 (2023-10-11)
==================

Features
--------

- Support Python 3.12 (`#397 <https://https://github.com/fizyk/pyramid_basemodel/issues/397>`_)


Miscellaneus
------------

- `#358 <https://https://github.com/fizyk/pyramid_basemodel/issues/358>`_, `#361 <https://https://github.com/fizyk/pyramid_basemodel/issues/361>`_, `#372 <https://https://github.com/fizyk/pyramid_basemodel/issues/372>`_, `#398 <https://https://github.com/fizyk/pyramid_basemodel/issues/398>`_


0.6.0 (2023-01-30)
==================

Breaking changes
----------------

- Require SQLALchemy 2.0 as the imports were adjusted according to SQLALchemy 2.0 Deprecation warnings. (`#327 <https://https://github.com/fizyk/pyramid_basemodel/issues/327>`_)


0.5.3 (2022-12-06)
==================

Miscellaneus
------------

- Migrate automerge `fizyk/actions-reuse/.github/workflows/automerge-shared.yml`
  using github application for maintaining short lived acess tokens for merge-me actions. (`#297 <https://https://github.com/fizyk/pyramid_basemodel/issues/297>`_)
- Move as much of the project configuration to pyproject.toml as possible. And drop setup.py. (`#301 <https://https://github.com/fizyk/pyramid_basemodel/issues/301>`_)


0.5.2 (2022-11-25)
==================

Miscellaneus
------------

- Moved development dependency management into pipfile/pipfile.lock (`#283 <https://https://github.com/fizyk/pyramid_basemodel/issues/283>`_)
- Change versionin bumping tool from bumpversion to tbump (`#285 <https://https://github.com/fizyk/pyramid_basemodel/issues/285>`_)
- Updated package description to support python 3.11 (`#286 <https://https://github.com/fizyk/pyramid_basemodel/issues/286>`_)
- Added project urls to setup.cfg for better pypi.org experience. (`#287 <https://https://github.com/fizyk/pyramid_basemodel/issues/287>`_)


0.5.1
-----

* [package] Marked python 3.10 compatible (Trove Classifiers)

0.5.0
-----

* [simplify] Removed `inspect` and `to_slug` from `BaseSlugNameMixin.set_slug` method. These parameters seemd like a way 
  to override some core functionality, which seems like a rare enough case to not maintain it, especially without tests.
* [simplify] Removed `named_tempfile_cls` from `Blob.get_as_named_tempfile` as it wasn't used.
* [simplify] Simplified the `Blob.update_from_url`. Now the method accepts only url parameter and does exactly one thing.
* [code] Use default arguments instead of compose sections.

0.4.0
-----

* [enhancement] Switch slugify to python-slugify as the latter is python3 compatible
* [enhancement] As far as existing tests are concerned, now there's both full
  compatibility and feature parity between python 2 and python 3
* [CI] use CI

0.3.7
-----

* Fix support for zope.sqlalchemy >= 1.2

0.3.4
-----

* Remove stray print statements.

0.3.3
-----

* Bump to remove `src/*.egg-info` directory from PyPI distribution.

0.3.2
-----

* Make engine kwargs configurable.

0.3.1
-----

* Introduce the `basemodel.should_bind_engine` config flag, which can be used,
  e.g.: in ftests, to disable the automatic engine setup, even when application
  code `config.include('pyramid_basemodel')`\s.

  Defaults to `True`!

0.3
---

Default `basemodel.should_create_all` to `False`. This will break apps that rely on tables being created by default. However, it's much saner to only
invoke both `metadata.create_all(engine)` and `metadata.drop_all(engine)` when
explicitly told to, particularly as most applications will use migrations
to manage the database schema.

0.2.4 -> 0.2.6
--------------

Faff about horribly with the slug generation code.

0.2.3
-----

Fix Python3 `KeyError` syntax bug.

0.2.2
-----

Support dotted path `sqlalchemy.pool_class` configuration.

0.2.1
-----

Provide `util.get_object_id` function and stamp
`sqlalchemy.ext.declarative.declarative_base()` subclasses with the
`interfaces.IDeclarativeBase` interface.

0.2
---

Fix Python3 support (requires 3.3 for the unicode literal character).

0.1.8
-----

Allow concrete subclasses of ``BaseModelContainer`` to be provided in the
``tree.BaseContentRoot.mapping`` (as well as interfaces).

0.1.7
-----

Added a `pyramid_basemodel.blob.Blob` model class to store large binary files.

Fixed up `.slug` module doctests. Fix `install_requires` list in `setup.py`.

0.1.6
-----

Base the ``BaseMixin.class_name`` on a singularised version of the plural
class name.  This may seem a bit arse about face, but allows us to use the
tablename to split the word, e.g.:

.. code-block::

    >>> class OperatingScale(Base, BaseMixin):
    ...     __tablename__ 'operating_scales'
    ... 

    >>> OperatingScale.class_name
    'Operating Scale'

Just ignore all this if you don't plan on using the `class_name`, `class_slug` and
`plural_class_name` properties.

0.1.5
-----

Provide `BaseMixin.class_slug` and base it and the `BaseMixin.plural_class_name`
on the `cls.__tablename__` instead of the `cls.__name__`.

All still manually overrideable by providing the corresponding property with a
single underscore, e.g.: `cls._plural_class_name`.

0.1.4
-----

Provide `BaseMixin.class_name` and `BaseMixin.plural_class_name`.

0.1.3
-----

Bugfix to parse config options properly.

0.1.2
-----

Added `basemodel.should_create_all` configuration option.