howso-engine 60.2.1__tar.gz → 60.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {howso_engine-60.2.1/howso_engine.egg-info → howso_engine-60.2.2}/PKG-INFO +1 -1
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/abstract_data.py +14 -2
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/base.py +5 -1
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/pandas.py +10 -4
- {howso_engine-60.2.1 → howso_engine-60.2.2/howso_engine.egg-info}/PKG-INFO +1 -1
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.coveragerc +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.flake8 +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.github/CODEOWNERS +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.github/templates/version_summary.md +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.github/workflows/build-pr.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.github/workflows/build-release.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.github/workflows/build.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.github/workflows/rebuild-requirements.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.github/workflows/version-update.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.gitignore +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.gitmodules +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/.pylintrc +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/CONTRIBUTING.md +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/LICENSE-3RD-PARTY.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/LICENSE.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/MANIFEST.in +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/Makefile +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/README.md +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/bin/build.sh +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/config/latest-mt-debug-howso.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/config/latest-mt-howso.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/config/latest-mt-noavx-traces-howso.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/config/latest-mt-traces-howso.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/config/latest-st-debug-howso.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/config/latest-st-howso.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/config/latest-st-traces-howso.yml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/config/powershell/Download-Tzdata.ps1 +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/config/powershell/Helper-Functions.ps1 +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/hatch.toml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/__main__.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/__init__.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/api.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/base.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/cache.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/client.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/configuration.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/exceptions.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/feature_flags.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/pandas/__init__.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/pandas/client.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/protocols.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/schemas/__init__.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/schemas/aggregate_reaction.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/schemas/base.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/schemas/group_reaction.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/schemas/project.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/schemas/reaction.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/schemas/session.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/schemas/trainee.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/schemas/version.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/client/typing.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/direct/__init__.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/direct/_utilities.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/direct/client.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/direct/schemas/__init__.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/direct/schemas/trainee.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/engine/__init__.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/engine/client.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/engine/project.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/engine/session.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/engine/trainee.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/howso-engine/howso.caml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/howso-engine/migrations/migrations.caml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/howso-engine/version.json +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/scikit/__init__.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/scikit/scikit.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/__init__.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/decorators.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/__init__.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/infer_feature_attributes.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/protocols.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/relational.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/serializers.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/suggestions.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/time_series.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/warnings.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/features.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/installation_verification.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/internals.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/json_wrapper.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/locale.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/monitors.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/posix.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/random.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/reaction.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/testing.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/tokenizing.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/utilities.py +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso_engine.egg-info/SOURCES.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso_engine.egg-info/dependency_links.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso_engine.egg-info/entry_points.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso_engine.egg-info/requires.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/howso_engine.egg-info/top_level.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/pyproject.toml +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/requirements-3.10-dev.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/requirements-3.10.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/requirements-3.11-dev.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/requirements-3.11.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/requirements-3.12-dev.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/requirements-3.12.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/requirements-3.13-dev.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/requirements-3.13.txt +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/setup.cfg +0 -0
- {howso_engine-60.2.1 → howso_engine-60.2.2}/version.json +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: howso-engine
|
|
3
|
-
Version: 60.2.
|
|
3
|
+
Version: 60.2.2
|
|
4
4
|
Summary: The Howso Engine™ is a natively and fully explainable ML engine, serving as an alternative to black box AI neural networks.
|
|
5
5
|
Author: Howso Incorporated
|
|
6
6
|
Author-email: support@howso.com
|
{howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/abstract_data.py
RENAMED
|
@@ -188,9 +188,21 @@ class InferFeatureAttributesAbstractData(InferFeatureAttributesBase):
|
|
|
188
188
|
|
|
189
189
|
elif is_datetime64_any_dtype(dtype):
|
|
190
190
|
typing_info = {}
|
|
191
|
-
if dtype in [
|
|
191
|
+
if dtype in ["datetime64[Y]", "datetime64[M]", "datetime64[D]"]:
|
|
192
192
|
return FeatureType.DATE, {}
|
|
193
|
-
|
|
193
|
+
# datetime64[Y/M/D] only supported by Pandas > 3.0; need more checks for date-only columns
|
|
194
|
+
first_non_null = self._get_first_non_null(feature_name)
|
|
195
|
+
if isinstance(first_non_null, datetime.date) and not isinstance(first_non_null, pd.Timestamp):
|
|
196
|
+
# Timestamp objects are instances of datetime.date/time, but only return 'DATE' here if
|
|
197
|
+
# it's *not* a Timestamp as there may be tzinfo we should inspect.
|
|
198
|
+
return FeatureType.DATE, {}
|
|
199
|
+
# Date-only Timestamp objects in Pandas will have a default time of midnight
|
|
200
|
+
if (isinstance(first_non_null, pd.Timestamp)
|
|
201
|
+
and first_non_null.time() == datetime.time(0, 0, 0)
|
|
202
|
+
and (not hasattr(dtype, "tz") or not dtype.tz)
|
|
203
|
+
):
|
|
204
|
+
return FeatureType.DATE, {}
|
|
205
|
+
if isinstance(dtype, pd.DatetimeTZDtype):
|
|
194
206
|
# If using a named time zone capture it, otherwise
|
|
195
207
|
# rely on the offset in the iso8601 format
|
|
196
208
|
tz_name = getattr(dtype.tz, 'key', None) or getattr(dtype.tz, 'zone', None)
|
|
@@ -1492,7 +1492,7 @@ class InferFeatureAttributesBase(ABC):
|
|
|
1492
1492
|
@staticmethod
|
|
1493
1493
|
def _is_datetime(string: str) -> bool:
|
|
1494
1494
|
"""
|
|
1495
|
-
Return True if string can be interpreted as a date.
|
|
1495
|
+
Return True if string can be interpreted as a date(time).
|
|
1496
1496
|
|
|
1497
1497
|
Parameters
|
|
1498
1498
|
----------
|
|
@@ -1543,6 +1543,10 @@ class InferFeatureAttributesBase(ABC):
|
|
|
1543
1543
|
# column itself is not actually a datetime type
|
|
1544
1544
|
rand_val = self._get_random_value(feature, no_nulls=True)
|
|
1545
1545
|
|
|
1546
|
+
# Casting `datetime` objects to string will result in valid ISO-8601
|
|
1547
|
+
if isinstance(rand_val, (datetime.date, datetime.datetime)):
|
|
1548
|
+
return True
|
|
1549
|
+
|
|
1546
1550
|
# Try to parse one or both values as strictly iso8601
|
|
1547
1551
|
try:
|
|
1548
1552
|
if not self._is_datetime(first_non_none):
|
|
@@ -226,12 +226,18 @@ class InferFeatureAttributesDataFrame(InferFeatureAttributesBase):
|
|
|
226
226
|
elif is_datetime64_any_dtype(dtype):
|
|
227
227
|
typing_info = {}
|
|
228
228
|
# Check for date-only features
|
|
229
|
-
if dtype in [
|
|
229
|
+
if dtype in ["datetime64[Y]", "datetime64[M]", "datetime64[D]"]:
|
|
230
230
|
return FeatureType.DATE, {}
|
|
231
231
|
first_non_null = self._get_first_non_null(feature_name)
|
|
232
|
-
if isinstance(first_non_null, pd.Timestamp):
|
|
233
|
-
#
|
|
234
|
-
|
|
232
|
+
if isinstance(first_non_null, datetime.date) and not isinstance(first_non_null, pd.Timestamp):
|
|
233
|
+
# Timestamp objects are instances of datetime.date/time, but only return 'DATE' here if
|
|
234
|
+
# it's *not* a Timestamp as there may be tzinfo we should inspect.
|
|
235
|
+
return FeatureType.DATE, {}
|
|
236
|
+
# Date-only Timestamp objects in Pandas will have a default time of midnight
|
|
237
|
+
if (isinstance(first_non_null, pd.Timestamp)
|
|
238
|
+
and first_non_null.time() == datetime.time(0, 0, 0)
|
|
239
|
+
and (not hasattr(dtype, "tz") or not dtype.tz)
|
|
240
|
+
):
|
|
235
241
|
return FeatureType.DATE, {}
|
|
236
242
|
# Datetime feature (with timezone info)
|
|
237
243
|
if isinstance(dtype, pd.DatetimeTZDtype):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: howso-engine
|
|
3
|
-
Version: 60.2.
|
|
3
|
+
Version: 60.2.2
|
|
4
4
|
Summary: The Howso Engine™ is a natively and fully explainable ML engine, serving as an alternative to black box AI neural networks.
|
|
5
5
|
Author: Howso Incorporated
|
|
6
6
|
Author-email: support@howso.com
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/relational.py
RENAMED
|
File without changes
|
{howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/serializers.py
RENAMED
|
File without changes
|
{howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/suggestions.py
RENAMED
|
File without changes
|
{howso_engine-60.2.1 → howso_engine-60.2.2}/howso/utilities/feature_attributes/time_series.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|