Skip to content

Commit b90f3e2

Browse files
authored
⚡️ v3.1.2 Improve index filtering. (#223)
- **Improve filtering logic for non-datetime pipes.** The `Pipe.fiter_existing()` method has been fixed to correctly apply non-datetime filters when syncing dataframes. - **Handle mixed nulls when filtering dataframes.** Dataframes with different nulls (e.g. empty strings vs `None` vs `pd.NA`, etc.) are now correctly coerced to reduce excessive updates. - **Fix minor cache race condition.** When syncing pipes with many concurrent chunks, additional safeguards have been added to ensure cached values are ready correctly. - **Bump Docker base to Python 3.14.** The Docker image has been rebased to `fedora:43` which ships with Python 3.14.
1 parent 992e987 commit b90f3e2

File tree

11 files changed

+216
-158
lines changed

11 files changed

+216
-158
lines changed

CHANGELOG.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
11
# 🪵 Changelog
22

3-
## 3.0.x Releases
3+
## 3.1.x Releases
44

55
This is the current release cycle, so stay tuned for future releases!
66

7+
### v3.1.2
8+
9+
- **Improve filtering logic for non-datetime pipes.**
10+
The `Pipe.fiter_existing()` method has been fixed to correctly apply non-datetime filters when syncing dataframes.
11+
12+
- **Handle mixed nulls when filtering dataframes.**
13+
Dataframes with different nulls (e.g. empty strings vs `None` vs `pd.NA`, etc.) are now correctly coerced to reduce excessive updates.
14+
15+
- **Fix minor cache race condition.**
16+
When syncing pipes with many concurrent chunks, additional safeguards have been added to ensure cached values are ready correctly.
17+
18+
- **Bump Docker base to Python 3.14.**
19+
The Docker image has been rebased to `fedora:43` which ships with Python 3.14.
20+
721
### v3.1.0 – v3.1.1
822

923
- **Improve `geometry` performance.**
@@ -23,6 +37,8 @@ This is the current release cycle, so stay tuned for future releases!
2337

2438
- **Drop `citus` from the test suite.**
2539
Like `cockroachdb`, the `citus` flavor has been deprecated; please use the `postgresql` flavor instead.
40+
41+
## 3.0.x Releases
2642

2743
### v3.0.9 – v3.0.10
2844

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM fedora:42 AS runtime
1+
FROM fedora:43 AS runtime
22

33
ARG dep_group=full \
44
mrsm_user=meerschaum \

docs/mkdocs/news/changelog.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
11
# 🪵 Changelog
22

3-
## 3.0.x Releases
3+
## 3.1.x Releases
44

55
This is the current release cycle, so stay tuned for future releases!
66

7+
### v3.1.2
8+
9+
- **Improve filtering logic for non-datetime pipes.**
10+
The `Pipe.fiter_existing()` method has been fixed to correctly apply non-datetime filters when syncing dataframes.
11+
12+
- **Handle mixed nulls when filtering dataframes.**
13+
Dataframes with different nulls (e.g. empty strings vs `None` vs `pd.NA`, etc.) are now correctly coerced to reduce excessive updates.
14+
15+
- **Fix minor cache race condition.**
16+
When syncing pipes with many concurrent chunks, additional safeguards have been added to ensure cached values are ready correctly.
17+
18+
- **Bump Docker base to Python 3.14.**
19+
The Docker image has been rebased to `fedora:43` which ships with Python 3.14.
20+
721
### v3.1.0 – v3.1.1
822

923
- **Improve `geometry` performance.**
@@ -23,6 +37,8 @@ This is the current release cycle, so stay tuned for future releases!
2337

2438
- **Drop `citus` from the test suite.**
2539
Like `cockroachdb`, the `citus` flavor has been deprecated; please use the `postgresql` flavor instead.
40+
41+
## 3.0.x Releases
2642

2743
### v3.0.9 – v3.0.10
2844

meerschaum/config/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
Specify the Meerschaum release version.
33
"""
44

5-
__version__ = "3.1.1"
5+
__version__ = "3.1.2"

meerschaum/core/Pipe/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353

5454
import sys
5555
import copy
56+
import threading
57+
import collections
5658

5759
import meerschaum as mrsm
5860
from meerschaum.utils.typing import Optional, Dict, Any, Union, List, InstanceConnector
@@ -439,6 +441,8 @@ def __init__(
439441
if self.instance_keys == 'sql:memory':
440442
self.cache = False
441443

444+
self._cache_locks = collections.defaultdict(lambda: threading.RLock())
445+
442446

443447
@property
444448
def meta(self):

0 commit comments

Comments
 (0)