Skip to main content

Yet another Bayesian factorization machines.

Project description

myFM

Python pypi GitHub license Build Read the Docs codecov

myFM is an implementation of Bayesian Factorization Machines based on Gibbs sampling, which I believe is a wheel worth reinventing.

Currently this supports most options for libFM MCMC engine, such as

There are also functionalities not present in libFM:

  • The gibbs sampler for Ordered probit regression [5] implementing Metropolis-within-Gibbs scheme of [6].
  • Variational inference for regression and binary classification.

Tutorial and reference doc is provided at https://myfm.readthedocs.io/en/latest/.

Installation

The package is pip-installable.

pip install myfm

There are binaries for major operating systems.

If you are working with less popular OS/architecture, pip will attempt to build myFM from the source (you need a decent C++ compiler!). In that case, in addition to installing python dependencies (numpy, scipy, pandas, ...), the above command will automatically download eigen (ver 3.4.0) to its build directory and use it during the build.

Examples

A Toy example

This example is taken from pyfm with some modification.

import myfm
from sklearn.feature_extraction import DictVectorizer
import numpy as np
train = [
	{"user": "1", "item": "5", "age": 19},
	{"user": "2", "item": "43", "age": 33},
	{"user": "3", "item": "20", "age": 55},
	{"user": "4", "item": "10", "age": 20},
]
v = DictVectorizer()
X = v.fit_transform(train)
print(X.toarray())
# print
# [[ 19.   0.   0.   0.   1.   1.   0.   0.   0.]
#  [ 33.   0.   0.   1.   0.   0.   1.   0.   0.]
#  [ 55.   0.   1.   0.   0.   0.   0.   1.   0.]
#  [ 20.   1.   0.   0.   0.   0.   0.   0.   1.]]
y = np.asarray([0, 1, 1, 0])
fm = myfm.MyFMClassifier(rank=4)
fm.fit(X,y)
fm.predict(v.transform({"user": "1", "item": "10", "age": 24}))

A Movielens-100k Example

This example will require pandas and scikit-learn. movielens100k_loader is present in examples/movielens100k_loader.py.

You will be able to obtain a result comparable to SOTA algorithms like GC-MC. See examples/ml-100k.ipynb for the detailed version.

import numpy as np
from sklearn.preprocessing import OneHotEncoder
from sklearn import metrics

import myfm
from myfm.utils.benchmark_data import MovieLens100kDataManager

data_manager = MovieLens100kDataManager()
df_train, df_test = data_manager.load_rating_predefined_split(
    fold=3
)  # Note the dependence on the fold

def test_myfm(df_train, df_test, rank=8, grouping=None, n_iter=100, samples=95):
    explanation_columns = ["user_id", "movie_id"]
    ohe = OneHotEncoder(handle_unknown="ignore")
    X_train = ohe.fit_transform(df_train[explanation_columns])
    X_test = ohe.transform(df_test[explanation_columns])
    y_train = df_train.rating.values
    y_test = df_test.rating.values
    fm = myfm.MyFMRegressor(rank=rank, random_seed=114514)

    if grouping:
        # specify how columns of X_train are grouped
        group_shapes = [len(category) for category in ohe.categories_]
        assert sum(group_shapes) == X_train.shape[1]
    else:
        group_shapes = None

    fm.fit(
        X_train,
        y_train,
        group_shapes=group_shapes,
        n_iter=n_iter,
        n_kept_samples=samples,
    )
    prediction = fm.predict(X_test)
    rmse = ((y_test - prediction) ** 2).mean() ** 0.5
    mae = np.abs(y_test - prediction).mean()
    print("rmse={rmse}, mae={mae}".format(rmse=rmse, mae=mae))
    return fm


# basic regression
test_myfm(df_train, df_test, rank=8)
# rmse=0.90321, mae=0.71164

# with grouping
fm = test_myfm(df_train, df_test, rank=8, grouping=True)
# rmse=0.89594, mae=0.70481

Examples for Relational Data format

Below is a toy movielens-like example that utilizes relational data format proposed in [3].

This example, however, is too simplistic to exhibit the computational advantage of this data format. For an example with drastically reduced computational complexity, see examples/ml-100k-extended.ipynb;

import pandas as pd
import numpy as np
from myfm import MyFMRegressor, RelationBlock
from sklearn.preprocessing import OneHotEncoder

users = pd.DataFrame([
    {'user_id': 1, 'age': '20s', 'married': False},
    {'user_id': 2, 'age': '30s', 'married': False},
    {'user_id': 3, 'age': '40s', 'married': True}
]).set_index('user_id')

movies = pd.DataFrame([
    {'movie_id': 1, 'comedy': True, 'action': False },
    {'movie_id': 2, 'comedy': False, 'action': True },
    {'movie_id': 3, 'comedy': True, 'action': True}
]).set_index('movie_id')

ratings = pd.DataFrame([
    {'user_id': 1, 'movie_id': 1, 'rating': 2},
    {'user_id': 1, 'movie_id': 2, 'rating': 5},
    {'user_id': 2, 'movie_id': 2, 'rating': 4},
    {'user_id': 2, 'movie_id': 3, 'rating': 3},
    {'user_id': 3, 'movie_id': 3, 'rating': 3},
])

user_ids, user_indices = np.unique(ratings.user_id, return_inverse=True)
movie_ids, movie_indices = np.unique(ratings.movie_id, return_inverse=True)

user_ohe = OneHotEncoder(handle_unknown='ignore').fit(users.reset_index()) # include user id as feature
movie_ohe = OneHotEncoder(handle_unknown='ignore').fit(movies.reset_index())

X_user = user_ohe.transform(
    users.reindex(user_ids).reset_index()
)
X_movie = movie_ohe.transform(
    movies.reindex(movie_ids).reset_index()
)

block_user = RelationBlock(user_indices, X_user)
block_movie = RelationBlock(movie_indices, X_movie)

fm = MyFMRegressor(rank=2).fit(None, ratings.rating.values, X_rel=[block_user, block_movie])

prediction_df = pd.DataFrame([
    dict(user_id=user_id,movie_id=movie_id,
         user_index=user_index, movie_index=movie_index)
    for user_index, user_id in enumerate(user_ids)
    for movie_index, movie_id in enumerate(movie_ids)
])
predicted_rating = fm.predict(None, [
    RelationBlock(prediction_df.user_index, X_user),
    RelationBlock(prediction_df.movie_index, X_movie)
])

prediction_df['prediction']  = predicted_rating

print(
    prediction_df.merge(ratings.rename(columns={'rating':'ground_truth'}), how='left')
)

References

  1. Rendle, Steffen. "Factorization machines." 2010 IEEE International Conference on Data Mining. IEEE, 2010.
  2. Rendle, Steffen. "Factorization machines with libfm." ACM Transactions on Intelligent Systems and Technology (TIST) 3.3 (2012): 57.
  3. Rendle, Steffen. "Scaling factorization machines to relational data." Proceedings of the VLDB Endowment. Vol. 6. No. 5. VLDB Endowment, 2013.
  4. Bayer, Immanuel. "fastfm: A library for factorization machines." arXiv preprint arXiv:1505.00641 (2015).
  5. Albert, James H., and Siddhartha Chib. "Bayesian analysis of binary and polychotomous response data." Journal of the American statistical Association 88.422 (1993): 669-679.
  6. Albert, James H., and Siddhartha Chib. "Sequential ordinal modeling with applications to survival data." Biometrics 57.3 (2001): 829-836.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

myfm-0.4.0-cp312-abi3-win_amd64.whl (229.8 kB view details)

Uploaded CPython 3.12+Windows x86-64

myfm-0.4.0-cp312-abi3-musllinux_1_2_x86_64.whl (689.2 kB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ x86-64

myfm-0.4.0-cp312-abi3-musllinux_1_2_aarch64.whl (660.5 kB view details)

Uploaded CPython 3.12+musllinux: musl 1.2+ ARM64

myfm-0.4.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (230.1 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

myfm-0.4.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (217.3 kB view details)

Uploaded CPython 3.12+manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

myfm-0.4.0-cp312-abi3-macosx_11_0_arm64.whl (204.0 kB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

myfm-0.4.0-cp312-abi3-macosx_10_14_x86_64.whl (215.8 kB view details)

Uploaded CPython 3.12+macOS 10.14+ x86-64

myfm-0.4.0-cp311-cp311-win_amd64.whl (229.7 kB view details)

Uploaded CPython 3.11Windows x86-64

myfm-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl (689.5 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

myfm-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl (661.1 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

myfm-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (230.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

myfm-0.4.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (217.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

myfm-0.4.0-cp311-cp311-macosx_11_0_arm64.whl (204.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

myfm-0.4.0-cp311-cp311-macosx_10_14_x86_64.whl (215.8 kB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

myfm-0.4.0-cp310-cp310-win_amd64.whl (229.3 kB view details)

Uploaded CPython 3.10Windows x86-64

myfm-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl (689.4 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

myfm-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl (660.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

myfm-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (230.1 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

myfm-0.4.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (217.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

myfm-0.4.0-cp310-cp310-macosx_11_0_arm64.whl (203.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

myfm-0.4.0-cp310-cp310-macosx_10_14_x86_64.whl (215.5 kB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

myfm-0.4.0-cp39-cp39-win_amd64.whl (229.6 kB view details)

Uploaded CPython 3.9Windows x86-64

myfm-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl (689.4 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

myfm-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl (660.9 kB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

myfm-0.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (230.3 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

myfm-0.4.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (217.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

myfm-0.4.0-cp39-cp39-macosx_11_0_arm64.whl (204.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

myfm-0.4.0-cp39-cp39-macosx_10_14_x86_64.whl (215.7 kB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

File details

Details for the file myfm-0.4.0-cp312-abi3-win_amd64.whl.

File metadata

  • Download URL: myfm-0.4.0-cp312-abi3-win_amd64.whl
  • Upload date:
  • Size: 229.8 kB
  • Tags: CPython 3.12+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myfm-0.4.0-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f6a92feb6ce239346a45b3b88ed4c6ada5d0f13126db45564b9737281f223afa
MD5 6089ff51979e2415b7271124c6aaa3cc
BLAKE2b-256 51a07b6b05b82d54aa1376afec50a45b07ba621d10a5c8d683cfeb306c0fee33

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp312-abi3-win_amd64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp312-abi3-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: myfm-0.4.0-cp312-abi3-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 689.2 kB
  • Tags: CPython 3.12+, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myfm-0.4.0-cp312-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9ab0c5ed19f3adf158d8ff742555e0b2cc6582657249210370bb111380861533
MD5 80c1ce64fd47b8b856393f5471d10eab
BLAKE2b-256 97b740b46221da761c2ecf9f27d0561d04694ae253afa4374c8be71be1827f17

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp312-abi3-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp312-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp312-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4fdcef3e98ac1b8707b4f642055ae02854793871719e7367ff95e2af7163ce3b
MD5 b44df2e2e4bc8bd43b5f5dd881c2f18e
BLAKE2b-256 a852062c6d402fbaf99f209d806f4e3a62ad7b8c7a08d9d42710b532040dd003

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp312-abi3-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 443e25d7cc6506d247195b31ecc3a347fa6e980768ec254589bf77ab8a765930
MD5 e29b88fcc628c27e5d72590edbe92beb
BLAKE2b-256 22ccc07ecae3e725ea82b1c3898802e667143d28e42c31d7c230e8b0a55ebc51

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp312-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f18cb0914d5f61e170c0776b9b871b76eb7af37ae3f4b2fd53b4d4f605b3e5cd
MD5 3d0f2fd0a6a5a2d7d216a94bae716d0f
BLAKE2b-256 a19c3f3e28617474fbdcf7b5c7738335f0fbea5c08b7a472b017b8b7d9b8e3f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp312-abi3-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: myfm-0.4.0-cp312-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 204.0 kB
  • Tags: CPython 3.12+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myfm-0.4.0-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5f2ae4488dfd0c3c6bb97fbd32ff33404d6ebf876942c5c6c124307f0837b2df
MD5 a6c76939d8a8c38845655559ab480588
BLAKE2b-256 8d74292dbbc7e7e99c71828d24f20fee31b2f4afbce33b1c83ced1748894b1b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp312-abi3-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp312-abi3-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp312-abi3-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 cdf48cae036a1c22b8964d5d3cf1619b89afc059bd6b5ea46ed79f5292b03307
MD5 3856a78680d206f874e79173de3543f2
BLAKE2b-256 083f68050f0c1534cad9374a5026d7894cea3f718a590da2db404e56a9da7aaa

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp312-abi3-macosx_10_14_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: myfm-0.4.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 229.7 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myfm-0.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 0b0edaa651f23602dcc88c201dd6d985e1b0aa7f9c29e72a5b5e9ac6242e33c3
MD5 aaf07001d45c7c959b6db772d741bde8
BLAKE2b-256 79244cf969dfe4a967153e9ea2c80d63e549c21a5a9c95a2b44cf5663bb713d2

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 fb8ce768c9d2307c6f3e7b74a7a0edaff14055099610e57824f6f14d04103ba7
MD5 14c467ccdcc8986e122ee6eff0865fb0
BLAKE2b-256 fa8def3e995d249d7d5e90e8d7c80f2f696e9041bff38f84401fabdeb61f3d0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp311-cp311-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b2a86cd3d25495844c81ee4bcf890540c19147035b757e161cb7629b2ee1e4ab
MD5 b7f2afdb3671e89a672bf91044cdb459
BLAKE2b-256 f5fe2aa6c5ed3be315e503fa18dda207af118fb27957c3ca186e524ec8962fe8

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp311-cp311-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ed0b72971a5553ad6385b4ae8e77633275684d4659208704421e98f0420c1076
MD5 f6771c1428615e397ca32533be37cf9e
BLAKE2b-256 338445814c1240565e96b87ebb07dcf94a0469d4b2db6ae9173efaee6e32e0dd

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3328b6056ab4cf74b0bd2cbfe5ee9017ced3532c6a033f41a3f80ef1f0f14a02
MD5 2d6f489aae8695d95ea96402db533b9d
BLAKE2b-256 65e7f1d4e10122efd44f64990952d6f930f72a2f738e6e2a8e9837a58718b6c4

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1bfd0d1e84e2026d48e96edb726ef3380167ce86f210f89130bf6696b78c4ab9
MD5 99b48ffa8566a59b8d5f93c35ebc3d4e
BLAKE2b-256 b349f380fc7cfda1dcea813c752e2f01cfe27ba6b62ffcde451d3d8503023575

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 5faa2c563cbce7a20dfb8dff1508704e8d5720ae7ae33a812d2ab75becbf1f69
MD5 63a95f8f9c4835e5301fe5d548223ed4
BLAKE2b-256 feccc381730b2dac9e5bd136929685f6f07c7b2ec61cd06e945e492bbe8bf263

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp311-cp311-macosx_10_14_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: myfm-0.4.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 229.3 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myfm-0.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f31f7963a0d280423d60f561d81f0bd6d07a45d55b73b5571b0309d5c007f0f2
MD5 b937106d49add996c64a978b6faf7709
BLAKE2b-256 c214b1232b033f9a2739915e68b818c59cd85cb6353f87add907a7922d03d3a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 3a516b42d679a398e39e8d399dbbd6c046f91df7c35483348c0b4b5c19a7f9ac
MD5 4552254f3a74281490de5b20ed7c3876
BLAKE2b-256 7a856d53272063ed7e3679e7dc7cd89ff4d348fd1f6403f7d6e36568d4e08d60

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp310-cp310-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 9bcafb4a85e65a8c8a5981de2864d4f3caac5e3df9a4b7f377ecb00265b5b2f0
MD5 ec6432fcbb416df3f4f8abbe5debe89d
BLAKE2b-256 83256f943d8c71a2c421bf0b7bc9d78f63bebe66d5e6e75d89f552820fa5938b

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp310-cp310-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fc8a269c185992b73d2370c372f3de482f978d010e9535be348b121c02720720
MD5 0a890ab933260a37d0d319a8dac9348b
BLAKE2b-256 bf7839949da32e277d67209712a2ce3e0cb1a282bc7ef6299d06ca7b5dc5be1c

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c090f7a91690fe2910de15de3a033631d1d9bb510aa0d45348b5e3ba63278623
MD5 aa769c34d5755c0c4e2ae90dd8d0d1b3
BLAKE2b-256 e13637e83515a48b64c2a360fd25af7804377b2dc10e8c94c73e1b2caedf5b08

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b285d2576b1c065e43401945278825a23dec1c717e40474703e8f7a88ef74b74
MD5 a133f382678d857a6f156c2d00342d7b
BLAKE2b-256 8fc1fec18b465c9682cfc3634d479f0200b184c01de3808059af00c5f176bd42

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 02f816631f4c10fa4401cb29a4f602765a7cf4524f77c1156f9e12d44587718e
MD5 9fbb55f8753d81b5aad42b460ee85a35
BLAKE2b-256 8b29f9101410c5acc904d2870fad7c1e7e6b5ecbef172fadfd33ea96cace3239

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp310-cp310-macosx_10_14_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: myfm-0.4.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 229.6 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myfm-0.4.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 4f6b43b52980c4a4f020cc06db399d171504e85de3dba02d813c0983781807ec
MD5 13f9ddc1c3e525165555ba4ce26c38a6
BLAKE2b-256 e490871ccd41b4f50226704e403893fa4b4d7ae6848ea6b757dd3e4ad697fd6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp39-cp39-win_amd64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

  • Download URL: myfm-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl
  • Upload date:
  • Size: 689.4 kB
  • Tags: CPython 3.9, musllinux: musl 1.2+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myfm-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 cea4a88c2f51a1859755794fecc7bcf9401e274ec436178870e03255c4a59c7a
MD5 fa169f1e8c7ff4f440b768fb61117360
BLAKE2b-256 8b89ab894208ce99529f894739470690d95716f422c485e062ac9b0e9d5db9a0

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp39-cp39-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 24fc8a4f1785732c9a368eb37c6fcbdd6e21cd5c252f48d488ae36c780487905
MD5 08248d29af7a6b315462fae5a27bca59
BLAKE2b-256 41f9973da63559c7b1872b84658f35658ea8e8e1022e72bc8fcf0f6d2f2c3683

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp39-cp39-musllinux_1_2_aarch64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 60030b61bf61d9e7f653ed41ef863fd0cdf7fbe5b1d7c1c3e42480eaf51974aa
MD5 e2bb1102dd3e95c5a6658dac57c7f95f
BLAKE2b-256 a9ff3e6908c2fc190fb5fe61de1a3930f61be1f99bb010ab65b2da0c4936cddc

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for myfm-0.4.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 97708b2761730429844e3e0d897094392b4bd8c1bce628adcf579464c7c0dbc8
MD5 5592fd4fa8d715e0d96116caa6650da9
BLAKE2b-256 47a82d40d13b0f28c75b03b5721cd2eef23850b8a3e63507de49127f301a2b62

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: myfm-0.4.0-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 204.1 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myfm-0.4.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cba4f7708330f3e67fe8eed39db210c01a5a31ca692268d5f44c1ee0fbba1144
MD5 10eacd65c1e20a75ba6fc30622eea3bd
BLAKE2b-256 9179576c51f6a41290e5ab0e3b41668692eec15e22aedfa220f33be52557b258

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file myfm-0.4.0-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: myfm-0.4.0-cp39-cp39-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 215.7 kB
  • Tags: CPython 3.9, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for myfm-0.4.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 22f8ecc016a3e68d6603b31dcea4fcea9e75c0803508fcc98bb15f498fa37104
MD5 7c01f0d1a80ca2de20fc6a6751c8edd6
BLAKE2b-256 f84ea5afb8f0c476fb68f1b6ea17dc7399a9cd7a588e63a834a5fb9f07a54833

See more details on using hashes here.

Provenance

The following attestation bundles were made for myfm-0.4.0-cp39-cp39-macosx_10_14_x86_64.whl:

Publisher: wheels.yml on tohtsky/myFM

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page