- Add
FiniteDatetimeRange.as_date_range
#181 - [Breaking] Remove
ranges.date_range_for_midnight_range
(replaced by FiniteDatetimeRange.as_date_range)[#181] (#181)
- Add
ranges.date_range_for_midnight_range
[#178] (#178) - Add
FiniteDatetimeRange.localize
[#178] (#178)
- Add optional
timezone
parameter to datetime-based range fields [#174] (#174)
- [Breaking] Use parameter object for passing options to
pact_service
. Rename parameterpact_version
toconsumer_version
. #166 - Fix bug with
list_files
method inS3SubdirectoryFileStore
[#171] (#171)
- Add
ranges.iterate_over_months
function #163
- Implements
__copy__
and__deepcopy__
on Range types #160
- [Breaking] Range types are now (mostly) immutable #142
- start, end, and bounds can no longer be modified after creation
- [Breaking] The
types
module is now split into a package containingtypes.generic
andtypes.django
#144xocto.numbers
andxocto.ranges
can now be imported without configuring Django
- Postgres range database fields now allow querying by a single value #150
Storage.fetch_file
now supports fetching a range #154- Enables
FiniteDatetimeRange
to be unioned with more than two ranges #155
- Yanked v4.10.1 due to unintentional inclusion of breaking changes. This release is identical to v4.10.1, but with the breaking changes from #142 removed.
- Updated build config to automatically include sub-packages #143
- Makes available the new
xocto.fields
package in the distribution introduced in 4.10.0
- Makes available the new
- Updated dev dependencies like ruff, pytest, and mypy #138
- Updated doc dependencies to fix the build #139
- Added a new module
xocto.fields.postgres.ranges
to provide range fields that work with theRange
classes fromxocto.ranges
#136- Tests now depend on postgres and psycopg2
- Doc site should now build again correctly
- Add "as_finite_datetime_periods" fn #134
- Add HalfFiniteRangeSet class to better support working with sets of such ranges #130
- Include py.typed files in package data to restore correct type checking #127
- Modernize setup to use pyproject.toml #116
- Populate
xocto.__version__
from package metadata - Enables
FiniteDateRange
to be unioned with more than two ranges #123
- Fix docs by adding missing rtd theme #115
- Adding explicit type for Optional OneToOneField #113
- Fix
OverflowError
when callingis_disjoint
on a range containingdate.min
ordate.max
#112 - Improve autodoc of callables and variables #111
🎃 Happy Halloween! 🎃
- Adding explicit type for Optional Foreign Key #108
- Fix erroneously narrow typehinting in localtime module #106
- Fix ValueError bug when trying to intersect adjacent FiniteDateRanges #105
- Upgrade duckdb package to version 0.9.0#104
- Fix bug with
FiniteDateRange.days
being 1 day short #98 - Make
FiniteDateRange.is_disjoint
recognise adjacent ranges as not disjoint #99 - Add a
strftime
function to localtime module #100
- Replaced flake8 and isort with ruff #101
- Updated types in localtime.py #101
- Add
RangeSet.is_(left|right)_finite
#96
- Enable querying parquet files using
S3FileStore.fetch_object_contents_with_s3_select
andLocalFileStore.fetch_object_contents_with_s3_select
#95
- Allow timzone override in
localtime.parse_dt
#93
- Add
localtime.parse_date
andlocaltime.parse_dt
#91
- Allow any iterable type in
ranges.any_overlapping
#90
- Add URL utils #87
- Bump min supported Python version to 3.9 #74, prompting a minor version change from 3.1.4 to 3.2.0
- Update error message for ranges with unbounded end #75
- Ranges: add utils to check period covering #69
- Add an extra example to ranges.Range.union #67
- Improve localtime module docstrings #65
- Defer openpyxl import #62
- Added ddtrace as a dependency #56
get_finite_datetime_ranges_from_timestamps()
now accepts an Iterable rather than a list. #54
- Added numpy as a dependency #52
- New function
pact_testing.get_git_branch_name()
for getting current git branch name #40 - New tracing module #46
- Updated dependencies so openpyxl, pandas, python-dateutil, python-magic, pytz, structlog, and xlrd are installed not just in dev #48
- Add pyarrow dependency #44
Includes:
- Many type annotations added (#33), breaking changes for some users means releasing this as a major version upgrade.
- Type annotation for
get_finite_datetime_ranges_from_timestamps
updated (#37). - Added the
localtime
functionperiod_exceeds_one_year
for determining whether a datetime period exceeds one year (#41).
Includes:
- Many type annotations added (#33).
- Type annotation for
get_finite_datetime_ranges_from_timestamps
updated (#37). - Added the
localtime
functionperiod_exceeds_one_year
for determining whether a datetime period exceeds one year (#41).
Includes:
Includes:
- A small fix to publish the storage module in setup.py
- README update
Includes:
- Remove the assert_never helper (#16)
- Add common pact testing test fixtures #18 (#18)
- Add S3 reusable code (#19)
Starting from this release, this project will be versioned using Semantic Versioning :
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality in a backwards compatible manner
- PATCH version when you make backwards compatible bug fixes
- Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
In practice this has been happening already, but we are now making it official.
This is an unknown release, mentioned here for the sake of completeness.
Includes:
- The localtime functions now return a Python datetime timezone UTC instead of a pytz UTC
Includes:
- Fix
is_local_time()
when using Python's datetime timezone UTC
Includes:
- Support for Django v4 (currently only supports
USE_DEPRECATED_PYTZ = True
)
Includes:
- Add the localtime, ranges, numbers and types modules
- Update black and isort
Includes:
- Include AWS instance ID in event metadata.
Includes:
- New settlement period functions.
Includes:
- New function to calculate the number of settlement periods in a given timedelta.
Includes:
- Import settlement period helpers from octotools repo
Includes:
- Ensure event meta data is published if it is non-empty
Includes:
- Event publishing functionality
- Unapplied migration checking function
Whoops